Udostępnij za pośrednictwem


Zarządzanie buforu

Podstawowym celem SQL Server jest baza danych do przechowywania i pobierania danych, więc do intensywnego dysku jest charakterystyczne dla rdzenia Aparat baz danych.A ponieważ operacji do dysku mogą zużywać dużo zasobów i stosunkowo długi czas, aby zakończyć, SQL Server koncentruje się na tworzenie wysoko wydajne We/Wy.Zarządzanie bufor jest klucz w osiąganiu efektywności tego składnika.Składnik Zarządzanie buforu składa się z dwóch mechanizmów: Menedżer buforu dostępu i aktualizować strony bazy danych i buforu pamięci podręcznej (zwane również pula buforów), aby zmniejszyć plik bazy danych We/Wy.

Jak działa bufor zarządzania

Bufor jest strona 8 KB pamięci o rozmiarze danych lub strona indeksu.W efekcie bufor pamięci podręcznej jest podzielony na strony 8 KB.Menedżer buforu zarządza funkcje czytania danych lub indeks stron z bazy danych plików z dysku do pamięci podręcznej buforu i zapisaniem zmodyfikowane strony z powrotem na dysk.Strona pozostaje w buforze pamięci podręcznej, dopóki menedżera buforów potrzebuje obszar buforu odczytu w więcej danych.Dane są ponownie zapisywane na dysku tylko wtedy, gdy jest modyfikowany.Dane w buforze pamięci podręcznej można modyfikować wiele razy przed zapisaniem na dysku.Aby uzyskać więcej informacji, zobacz Czytanie stron i Tworzenie stron.

When SQL Server starts, it computes the size of virtual address space for the buffer cache based on a number of parameters such as the amount of physical memory on the system, the configured number of maximum server threads, and various startup parameters.SQL Server reserves this computed amount of its process virtual address space (called the memory target) for the buffer cache, but it acquires (commits) only the required amount of physical memory for the current load.Kwerendy można bpool_commit_target i bpool_committed kolumn w sys.dm_os_sys_info wykazu widoku, aby zwrócić liczbę stron zarezerwowany jako miejsce docelowe pamięci i liczba stron aktualnie popełnione w buforze pamięci podręcznej, odpowiednio.

Interwał między SQL Server uruchamiania i kiedy bufor pamięci podręcznej uzyskuje jego miejsce docelowe pamięci jest nazywany górę rampy.Podczas tego czas, przeczytać żądania wypełnienia bufory, w razie potrzeby.Na przykład jedną strona odczytać żądania wypełnia strona pojedynczego buforu.Oznacza to, że w górę rampy zależy od liczby i rodzaju żądań klient.Górę rampy jest realizowana poprzez przekształcanie jednostronicowy żądań odczytu do żądania strona ośmiu wyrównany.Pozwala to na górę rampy zakończenie dużo szybciej, zwłaszcza na komputerach o dużej ilości pamięci.

Ponieważ Menedżer buforu używa większości pamięci w SQL Server procesu go współpracuje z Menedżera pamięci, aby zezwolić na inne składniki użyć buforów.Menedżera buforów komunikuje się głównie z następujących składników:

  • Menedżer zasobów ogólne wykorzystanie pamięci i w 32-bitowych platformach kontrolować wykorzystanie przestrzeni adresowej.

  • Menedżer bazy danych oraz SQL Server systemu operacyjnego (SQLOS) dla operacji We/Wy pliku niskiego poziom.

  • Menedżer dziennika dla rejestrowania zapisu z wyprzedzeniem.

Obsługiwane funkcje

Menedżer buforu obsługuje następujące funkcje:

  • Menedżer bufor jest niejednolity dostęp do pamięci (NUMA) wiedzieć.Bufor pamięci podręcznej stron są rozmieszczane sprzętu węzeł NUMAs, która umożliwia wątek dostępu do strona buforu, która jest przydzielona na lokalnym węzeł NUMA zamiast z pamięci obcych.Aby uzyskać więcej informacji, zobacz Jak SQL Server obsługuje NUMA.Aby zrozumieć, jak są przypisywane stron pamięci z pamięci podręcznej buforu podczas korzystania z NUMA, zobacz Rozrastania i zmniejszania puli buforów w obszarze NUMA.

  • Menedżer buforu obsługuje Hot dodać pamięć, która umożliwia użytkownikom dodawanie pamięci fizycznej, bez ponownego uruchamiania serwera.Aby uzyskać więcej informacji, zobacz Dodawanie pamięci na gorąco.

  • Menedżer buforu obsługuje pamięci dynamicznej alokacji na Microsoft systemu Windows XP 32-bitowych i Windows 2003 32-bitowych platformach po włączeniu AWE.Dynamiczna alokacja pamięci umożliwia Aparat baz danych do efektywnego nabywania i zwolnić pamięci w buforze pamięci podręcznej do obsługi bieżącego obciążenia.Aby uzyskać więcej informacji, zobacz Dynamiczne zarządzanie pamięcią.

  • Menedżer buforu obsługuje duże strony na platformach 64-bitowych.Rozmiar strona jest specyficzny dla wersja systemu Windows.Aby uzyskać więcej informacji zobacz dokumentację systemu Windows.

  • Menedżer buforu zapewnia dodatkowe Diagnostyka oferowanych przez dynamiczne zarządzanie widokami.Te widoki można używać do monitorowania różnych zasobów systemu operacyjnego, które są specyficzne dla SQL Server.Na przykład można użyć sys.dm_os_buffer_descriptors w celu monitorowania stron w pamięci podręcznej buforu.Aby uzyskać więcej informacji, zobacz SQL ServerSystem operacyjny powiązane widoki dynamiczne zarządzanie (Transact-SQL).

Do dysku

Menedżer buforu tylko wykonuje odczytuje i zapisuje w bazie danych.Innych operacji bazy danych i pliku, takie jak otwieranie, zamykanie, rozszerzanie i zmniejszanie są wykonywane przez menedżer bazy danych i składniki Menedżera plików.

Operacje We/Wy dysku przez Menedżera buforu mają następujące cechy:

  • Wszystkie Wy są wykonywane asynchronicznie, co umożliwia wywoływania wątek kontynuować przetwarzanie podczas wykonywania operacji We/Wy odbywa się w tle.

  • Wszystkie Wy są wydawane w wywołującego wątków, chyba że koligacji we/wy jest używana opcja.Wiąże koligacji opcję Maska we/wy SQL Server do dysku do określonego podzbiór procesorów.W wysokiej klasy SQL Server środowiskach transakcyjnego przetwarzania online (OLTP) tego rozszerzenia można zwiększyć wydajność SQL Server wydawanie wątków We/Wy.

  • Wiele strona Wy są realizowane przy użyciu punktowego zbieranie we/wy, co pozwala danych przekazywanych do lub z nieciągłe obszarów pamięci.Oznacza to, że SQL Server można szybko wypełnić lub opróżnić pamięć podręczną bufor, unikając wiele fizycznych we/wy żądania.

Długie żądań We/Wy

Bufor Menedżera raportów na każde żądanie We/Wy, która została pozostała co najmniej 15 sekund.Pomaga to administrator systemu rozróżnienie między SQL Server problemy i problemów podsystemu We/Wy.Komunikat o błędzie 833 jest zgłaszane i pojawi się dziennik błędów programu SQL Server w następujący sposób:

SQL Server napotkał wystąpień %d żądania We/Wy podejmowania dłużej niż %d sekund do ukończenia pliku [% ls] w bazie danych — % ls (% d).Dojście do pliku systemu operacyjnego jest 0 x % p.Przesunięcie najnowsze długie We/Wy jest: % # 016I64x.

Długie We/Wy mogą być odczytu lub zapisu; nie obecnie wskazane jest w wiadomości.Długo I/O wiadomości są ostrzeżenia, błędy nie.Nie wskazują problemy z SQL Server.Wiadomości są zgłaszane do pomocy administrator systemu znaleźć przyczynę poor SQL Server odpowiedzi razy szybciej i aby odróżnić problemy, które są poza kontrolą SQL Server.Jako takie, nie wymagają żadnych akcja, ale administrator systemu należy zbadać, dlaczego tak długo się żądania We/Wy i czy czas jest uzasadnione.

Przyczyny żądań długo I/O

Komunikat długo I/O może wskazywać, że we/wy jest zablokowany trwale i nigdy nie zostanie ukończona (znany jako utracone we/wy), lub jedynie go po prostu nie zakończył jeszcze.Nie jest możliwe poinformować scenariusz jest przypadek wiadomości, chociaż utracone we/wy często doprowadzi do zaczep czas-limit.

Wy długie często wskazywać SQL Server Obciążenie pracą jest zbyt intensywnej dla podsystemu dysku.Nieodpowiednie dyskowym podsystemie może być wskazane, gdy:

  • Wiele długich wiadomości we/wy są wyświetlane dziennik błędów podczas ciężkich SQL Server obciążenia.

  • Liczniki Monitora wydajności Pokaż dysku długie opóźnienia, kolejek długie dysku lub dysku bezczynny czas.

Wy długie również mogą być powodowane przez składnik ścieżka wejścia/wyjścia (na przykład sterownik, kontrolerem lub oprogramowania układowego) stale odkładanie obsługi starych żądań We/Wy korzyść z obsługi nowszych żądań, które są bliżej bieżącego położenia głowic dysku.Na podstawie wspólnych techniki przetwarzania żądań priorytetem które są najbardziej zbliżony do bieżącego położenia głowic odczytu i zapisu jest znany jako "szukają podnośnika." Może to być trudne przesłuchała Windows Monitor systemu (PERFMON.EXE) narzędzie, ponieważ większość operacji dotyczących są niezwłocznie poddawany.Długo żądań We/Wy mogą być wzmożonego przez wykonujących dużo sekwencyjnej operacji We/Wy, takie jak Kopia zapasowa i przywracanie skanowanie tabela, sortowanie, tworzenie indeksów, masowych ładunków, obciążeń i zerowania plików.

Izolowane długie we/wy, które nie występują pokrewne do którejkolwiek z powyższych warunków może być spowodowane problem ze sprzętem lub sterownik.Dziennik zdarzeń systemowych może zawierać zdarzenie związane, która pomaga w celu zdiagnozowania problemu.

Wykrywanie błędów

strona bazy danych można użyć jednej z dwóch mechanizmów opcjonalne, ułatwiające zapewnienie integralność strona z czas jest zapisywany na dysku, dopóki nie zostanie ponownie odczytać: Ochrona strona poszarpane i ochrony suma kontrolna.Mechanizmy te umożliwiają niezależne metoda sprawdzania poprawności nie tylko magazynowania danych, ale składniki sprzętowe, takie jak kontrolery, sterowniki, kable i nawet systemu operacyjnego.Ochrony dodany do strona tuż przed zapisu dysku i jest weryfikowana po jest odczytywana z dysku.

Poszarpane ochrona strony

Ochrona strona podarte, wprowadzonego w SQL Server 2000, głównie w sposób wykrycia uszkodzeń strona ze względu na awarie zasilania.Na przykład awaria zasilania nieoczekiwany może opuścić tylko część strona zapisywane na dysku.Użyto ochrony strona poszarpane podpisu bitowego 2 jest umieszczany na końcu każdego sektora 512 bajtów strona (po posiadające oryginalnego dwa bity są kopiowane do nagłówka strona).Podpis alternatywne między binarny 01 i 10 z każdego zapisu tak zawsze jest możliwe stwierdzić, gdy tylko części sektorów dokonywane go na dysku: Jeśli bit jest w niewłaściwym stanie, gdy strona jest nowszy odczytu, strony został napisany nieprawidłowo i wykryte poszarpane strony.Wykrywanie strona poszarpane używa minimalnych zasobów; jednak nie wykrywać wszystkich błędów spowodowanych awariami sprzętu dysku.

Ochrona sumy kontrolnej

Suma kontrolna ochrony, wprowadzonego w SQL Server 2005, zapewnia silniejsze sprawdzanie integralność danych.Suma kontrolna jest obliczana dla danych w każdej strona, która jest zapisywane i przechowywane w nagłówku strona.W każdym przypadku, gdy strona z przechowywana suma kontrolna jest odczytywana z dysku, aparat bazy danych przelicza sumy kontrolnej dla danych na stronie i podnosi błąd 824, jeśli nowy sumy kontrolnej jest przechowywana suma kontrolna.Suma kontrolna ochrony może przechwycić więcej błędów niż ochrona poszarpane strona, ponieważ wpływ każdego bajtu strona, jest jednak umiarkowanie znacznych zasób.Po włączeniu suma kontrolna błędów spowodowanych awarie zasilania i poprawiać sprzęt lub oprogramowanie układowe może być dowolny wykryto czas menedżera buforów odczytuje strona z dysku.

Rodzaj ochrony strona używany jest atrybut bazy danych zawierającej strona.Ochrona sumy kontrolnej jest domyślną ochronę baz danych utworzonych w SQL Server 2005 i nowsze.Mechanizm ochrony strona jest określona podczas tworzenia bazy danych czasi może zostać zmieniony za pomocą ALTER DATABASE.Można określić bieżące ustawienia ochrony strona przez badanie page_verify_option kolumna w sys.databases wykazu widoku lub IsTornPageDetectionEnabled właściwość DATABASEPROPERTYEX funkcja.Po zmianie ustawienia ochrony strona nowe ustawienie nie dotyczy całej bazy danych natychmiast.Natomiast Stron przyjmuje bieżący poziom ochrony bazy danych zawsze są zapisywane w następnym.Oznacza to, że baza danych może się składać z stron z różnymi rodzajami ochrony.