Udostępnij za pośrednictwem


Zarządzanie buforu

Podstawowym celem SQL Server Baza danych jest do przechowywania i pobierania danych, więc intensywne dysku we/wy jest podstawowa charakterystycznych dla Database Engine. A ponieważ operacji We/Wy 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 kluczowym składnikiem w osiąganiu to wydajność.Składnik Zarządzanie buforu składa się z dwóch mechanizmów: Menedżer buforu do uzyskania dostępu i aktualizowania stron bazy danych i buforu pamięci podręcznej (nazywane również pula buforów), aby zmniejszyć bazy danych plik we/wy.

Jak działa bufor zarządzania

Bufor jest strona 8 KB w pamięci, w taki sam rozmiar jak danych lub indeksu strony.W ten sposób buforu pamięci podręcznej jest podzielony na strony 8 KB.Menedżer buforu zarządza funkcji do odczytywania danych lub indeksu strony z bazy danych plików na 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 bufor Menedżer potrzebuje obszar buforu w większej ilości danych.Dane są zapisywane z powrotem na dysku tylko wtedy, gdy jego modyfikacji.Dane w buforze pamięci podręcznej mogą być modyfikowane wiele razy przed zapisywany na dysku.Aby uzyskać więcej informacji zobacz Czytanie stron i Zapisywanie 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 and bpool_committed kolumnsys.dm_os_sys_info wykazu widoku do zwracania liczby stron zarezerwowany jako miejsce docelowe pamięci i liczba stron aktualnie przekazana w buforze pamięci podręcznej, odpowiednio.

Odstęp czasu między SQL Server nazywa się uruchamiania i kiedy bufor pamięć podręczna uzyskuje jego miejsce docelowe pamięci Rampa up.W tym czasie odczytu wypełnienia żądania buforów stosownie do potrzeb.Na przykład jedną strona odczytać żądania Wstawia strona pojedynczego buforu.Oznacza to, że w górę rampy zależy od liczby i typu żądania klientów.Górę rampy jest przyspieszone przez Przekształcanie jednostronicowych żądań odczytu do żądań ośmiu stron wyrównany.Dzięki temu w górę rampy na zakończenie znacznie szybsze, 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 proces, jego współpracuje z Menedżera pamięci, aby zezwolić na inne składniki użyć swoich buforów. Menedżer buforu komunikuje się przede wszystkim z następujących składników:

  • Menedżer zasób do kontrolowania ogólne wykorzystanie pamięci i w 32-bitowych platformach, aby kontrolować użycie miejsca na adres.

  • Menedżer bazy danych i systemu operacyjnego serwera SQL (SQLOS) dla operacji na plikach niskiego poziom we/wy.

  • Menedżer dziennika dla rejestrowania zapisu naprzód.

Obsługiwane funkcje

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

  • Menedżer bufor jest inne niż jednolite dostęp do pamięci (NUMA) wiedzieć.Bufor stron pamięci podręcznej są rozmieszczane węzłów NUMA sprzętu, dzięki czemu wątek uzyskania dostępu do strona buforu przydzielony na węźle lokalnym NUMA, a nie z obcej pamięci.Aby uzyskać więcej informacji zobaczW jaki sposób program SQL Server obsługuje NUMA.Aby dowiedzieć się, jak są przypisywane stron pamięci z pamięci podręcznej buforu podczas korzystania z NUMA, zobacz Rosnącym i zmniejszanie pula buforów W NUMA.

  • Menedżer buforu obsługuje najnowsze Dodaj pamięć, która pozwala użytkownikom na dodawanie pamięci fizycznej, bez ponownego uruchamiania serwera.Aby uzyskać więcej informacji zobaczGorąco Dodawanie pamięci.

  • Menedżer buforu obsługuje pamięci dynamicznej alokacji na Microsoft Platformy systemu Windows XP 32-bitowym i Windows 2003 32-bitowych po włączeniu AWE. Umożliwia alokowanie pamięci dynamicznej Database Engine efektywne nabycia i zwolnienie pamięci w buforze buforu do obsługi obciążenia bieżącej. 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 specyficzne dla wersja systemu Windows.Aby uzyskać więcej informacji zobacz w dokumentacji systemu Windows.

  • Menedżer bufor zawiera dodatkowe narzędzia diagnostyczne, które są dostępne za pośrednictwem dynamicznego zarządzania widokami.Te widoki można użyć do monitorowania wielu zasobów systemu operacyjnego, które są specyficzne dla SQL Server. Na przykład, można użyć sys.dm_os_buffer_descriptors widoku do monitorowania stron w pamięci podręcznej buforu.Aby uzyskać więcej informacji zobaczSystem operacyjny serwera SQL Z dynamicznego zarządzania widoki (języka Transact-SQL).

We/Wy dysku

Menedżer bufor tylko wykonuje operacje odczytu i zapisu do bazy danych.Innych operacji plik i bazy danych, takie jak otwieranie, zamykanie, rozszerzanie i zmniejszanie są wykonywane przez menedżer bazy danych i plików składników menedżera.

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

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

  • Wszystkich operacji We/Wy są wydawane w wywołującym wątków, chyba że koligacja we/wy opcja jest używana.Wiąże we/wy opcji maski koligacji SQL Server We/Wy dysku do określonego podzbiór procesorów. W wysokiej jakości SQL Server środowiska przetwarzania transakcji online (OLTP), to rozszerzenie może zwiększyć wydajność SQL Server wątki wydawania operacji We/Wy.

  • Strona wielu operacji We/Wy są realizowane przy użyciu WE zbieranie punktowego/Wy, dzięki czemu dane, które mają zostać przeniesione do lub z wybrane obszary pamięci.Oznacza to, że SQL Server można szybko wypełnić lub opróżnić pamięć podręczną buforu, unikając wiele żądań We/Wy fizycznych.

Długie żądań We/Wy

Bufor Menedżera raportów na każde żądanie We/Wy, która została pozostała dla co najmniej 15 sekund.Dzięki temu administrator systemu, rozróżnienie między SQL Server problemy i problemy z podsystemu We/Wy. Komunikat o błędzie 833 po zgłoszeniu i pojawia się dziennik błędów programu SQL Server w następujący sposób:

Napotkano zamieniono %d żądań We/Wy podjęcia więcej niż %d sekund do zakończenia w pliku [% ls] w [% ls] (% d) w bazie danych programu SQL Server.Dojście do pliku systemu operacyjnego jest równa 0 x % p.Przesunięcie najnowsze długie we/wy jest: % # 016I64x.

Długie We/Wy mogą być odczytu lub zapisu, nie jest on obecnie podane w wiadomości.Długo I/O wiadomości są ostrzeżenia, błędy nie.Wskazują problemy z SQL Server. Wiadomości są zgłaszane do pomocy administrator systemu, znaleźć przyczynę niska SQL Server odpowiedź razy szybciej i aby odróżnić problemy, które są poza kontrolą SQL Server. Jako taka nie wymaga żadnych działań, ale administrator systemu należy sprawdzić, dlaczego żądania We/Wy trwała tak długo, i czy jest czas.

Powoduje, że żądania połączenia — I/O

Komunikat długo I/O może wskazywać, że we/wy jest zablokowany trwale i nigdy nie zostanie ukończona (nazywane utracone we/wy), lub jedynie jej po prostu nie zakończył jeszcze.Nie jest możliwe poznać od scenariusza, który jest przypadek wiadomości, chociaż utracone we/wy często doprowadzi do zatrzaśnięcie limit czas.

Często wskazują, jak długo we/wy SQL Server Obciążenie jest zbyt intensywne dla podsystemu dyskowego. To podsystem nieodpowiednie dysku może być wskazane, gdy:

  • Wiele długie wiadomości We/Wy są wyświetlane dziennik błędów podczas przy dużym SQL Server Obciążenie pracą.

  • Liczniki Monitora wydajności Pokaż opóźnienia długo dysku, dysku długie kolejki lub bez czas bezczynności dysku.

Długiej operacji We/Wy mogą także być spowodowane przez składnik w ścieżce we/wy (na przykład sterownik, kontrolerem lub oprogramowania układowego) stale odkładanie obsługi żądanie We/Wy stare korzyść programu obsługi żądań nowsze, które są bliżej bieżącego położenia głowic dysku.Na podstawie typowych technika przetwarzanie żądań w polu Priorytet które z nich są najbliższe do bieżącego położenia głowic odczytu/zapisu jest znana jako „ wind poszukiwanie. „ Może to być trudne do potwierdzić za pomocą narzędzie Monitor systemu Windows (PERFMON.EXE), ponieważ większość operacji We/Wy są są natychmiast obsługiwane. Długo żądania We/Wy mogą być zwiększonych przez obciążenie pracą, służące do wykonywania większej liczby kolejne we/wy, takie jak wykonywanie kopii zapasowych i przywracanie, skanowanie tabela, sortowanie, tworzenie indeksów, zbiorcza obciążeniach i wyzerowanie się pliki.

Odizolowane długie we/wy, które nie są wyświetlane powiązane z żadnym poprzednie warunki może być spowodowane przez problem ze sprzętem lub sterownik.W dzienniku zdarzeń systemu może zawierać powiązane zdarzenie, które pomaga w celu przeanalizowania problemu.

Wykrywanie błędów

strona bazy danych można użyć jednej z dwóch mechanizmów opcjonalne, ułatwiające zapewnienie spójności strona od czas jest zapisywany na dysku, dopóki nie jest ponownie odczytać: Ochrona strona poszarpane i ochrony suma kontrolna. Mechanizmy te umożliwiają niezależne metoda sprawdzania poprawności nie tylko do przechowywania danych, ale składników sprzętowych, takich jak kontrolery, sterowniki, kabli i jeszcze systemu operacyjnego.Ochrona jest dodawana do strona bezpośrednio przed zapisaniem go na dysk i weryfikowana po jest odczytywany z dysku.

Poszarpane ochrona strona

Ochrona strona poszarpane, wprowadzone w SQL Server 2000, to przede wszystkim sposób wykrycia uszkodzeń strona ze względu na awarie zasilania. Na przykład nieoczekiwany identyfikator zasilaniu wystawić tylko część strona zapisywane na dysku.Ochrona poszarpane strona jest używany, podpis 2 bit są umieszczane na końcu każdego sektora 512-bajtowych strona (po o oryginalny dwa bity są kopiowane do nagłówka strona).Przełącza podpisu między binarny 01 i 10 z każdego zapisu więc możliwe jest zawsze sprawdzić, kiedy tylko część sektorów czyni z niego na dysku: Jeśli bit jest w niewłaściwym stanie, gdy strona jest nowszy odczytać, na stronie został napisany nieprawidłowo i poszarpane strony zostanie wykryta. wykrywać strona poszarpane minimalnych zasobów; jednak nie wykrywa wszystkich błędów spowodowanych awariami sprzętu dysku.

Ochrona suma kontrolna

Suma kontrolna ochrony, wprowadzone w SQL Server 2005, zapewnia silniejsze sprawdzanie integralność danych. suma kontrolna jest obliczana dla danych z każdej strona, które są zapisywane i przechowywane w nagłówku strona.Za każdym razem, gdy strona z przechowywana suma kontrolna jest odczytywana z dysku, aparat bazy danych zostanie wykonane ponowne obliczenie sumy kontrolnej dla danych na stronie i wywołuje błąd 824, jeżeli nowe sumy kontrolnej jest inna niż przechowywana suma kontrolna.Ochrony suma kontrolna może przechwycić więcej błędów niż ochrona strona poszarpane, ponieważ wpływają bajt każdej strona, jest to jednak średnio intensywnego zasób.Po włączeniu suma kontrolna błędów spowodowanych awariami zasilania i flawed sprzętu lub oprogramowania układowego mogą być wykryte dowolne czas Menedżer buforu odczytuje strona z dysku.

Rodzaj ochrony strona, używany jest atrybut bazy danych zawierającej strona.Ochrona suma kontrolna jest ochroną domyślną dla baz danych utworzonych w SQL Server 2005 i nowszych. Mechanizm ochrony strona jest określony w momencie tworzenia bazy danych i mogą być zmienione za pomocą instrukcji ALTER DATABASE.Bieżące ustawienia ochrony strona, można określić za pomocą kwerend wysyłanych do page_verify_option kolumnasys.Databases wyświetlanie katalogu lub IsTornPageDetectionEnabled Właściwość DATABASEPROPERTYEX funkcja.Po zmianie ustawień ochrony strona, nowe ustawienie nie dotyczy całej bazy danych natychmiast.Zamiast tego Stron przyjmuje bieżący poziom ochrony bazy danych za każdym razem, gdy są one zapisywane następny.Oznacza to, że baza danych może się składać z stron za pomocą różnego rodzaju ochrony.