Informacji na temat używania pamięci podręcznej dysku z programem SQL Server, które powinien znać każdy administrator bazy danych

Dotyczy: Microsoft SQL Server 2005 Express EditionMicrosoft SQL Server 2005 Standard EditionMicrosoft SQL Server 2005 Workgroup Edition

Streszczenie


System bazy danych jest przede wszystkim odpowiedzialny za precyzyjne przechowywanie i pobieranie danych, nawet w przypadku niespodziewana awaria systemu.

Musi on zapewniać niepodzielność i odporność transakcji przy uwzględnieniu bieżącego wykonywania, wielu transakcji i różnych punktów awarii. To często jest określane mianem właściwości ACID (niepodzielność, spójność, izolacja i trwałości).

W tym artykule opisano skutki stacji dysków przechowuje w pamięci podręcznej. Zaleca się przeczytanie następujących artykułów z bazy wiedzy Microsoft Knowledge Base, aby uzyskać więcej wyjaśnień na temat buforowania i alternatywne omówienia trybu awarii:
86903 program SQL Server i buforowanie kontrolerów dysków

230785 algorytmy przechowywania danych i rejestrowania programu SQL Server 7.0 i SQL Server 2000 zwiększają niezawodność danych

Zaleca się także przeczytanie następujących dokumentów:
Uwaga Te dwa dokumenty dotyczą wszystkich aktualnie obsługiwanych wersji programu SQL Server.

Więcej informacji


Microsoft SQL Server oraz wiele głównych bazy danych produktów na rynku dziś używać protokołu Write-Ahead Logging (WAL).
Write-Ahead Logging Protokół WAL
Określenie Protokół to znakomity sposób wyjaśnienia WAL. Jest to charakterystyczny i zdefiniowany zestaw kroków implementacyjnych niezbędnych do zagwarantowania, że dane są przechowywane i wymieniane poprawnie i można odzyskać znanym stanie w wypadku awarii. Podobnie jak sieć zawiera zdefiniowany protokół wymiany danych w spójny i chroniony sposób, tak więc zbyt WAL opisuje protokół ochrony danych.
Wszystkie wersje programu SQL Server otwórz pliki dzienników i danych za pomocą funkcji Win32 CreateFile . Członek dwFlagsAndAttributes zawiera opcję FILE_FLAG_WRITE_THROUGH , gdy jest otwarty przez program SQL Server.
FILE_FLAG_WRITE_THROUGH
Ta opcja nakazuje systemowi zapisać wszystkie pośrednie bufory i bezpośrednio na dysku. System wciąż może buforować operacje zapisu, ale nie może leniwie ich.

Opcja FILE_FLAG_WRITE_THROUGH gwarantuje, że podczas zapisu operacji zwraca pomyślne zakończenie dane będą poprawnie zapisane w stabilnym magazynie. Jest to zgodne ze specyfikacją protokołu zapisu Ahead Logging (WAL) do zapewnienia bezpieczeństwa danych.
Wiele stacji dysków (SATA, ATA, SCSI i IDE wykorzystujące) zawiera wewnętrzne bufory 512 KB, 1 MB i większe. W buforach stacji dysków zazwyczaj polegać na kondensatorach, a nie rozwiązanie podtrzymywanej bateryjnie. Takie mechanizmy buforowania nie mogą zagwarantować cyklu zapisu w zasilania lub analogicznych awarii. Gwarantują jedynie ukończenie operacji zapisu sektora. Dyski nadal powiększy się, bufory stają się coraz większe, a mogą uwidaczniać większymi iloociami danych w przypadku awarii.


Ulepszone systemy kontrolerów buforowania wyłączyć pamięć podręczną na dysku i zapewniają funkcjonalne podtrzymywanej rozwiązanie buforowania. Takie bufory można przechowywania danych w pamięci podręcznej przez kilka dni, a nawet umożliwienie karty do umieszczenia na innym komputerze. Gdy zostanie przywrócone zasilanie, jest całkowicie opróżniany niezapisanych danych zanim będzie dozwolony jakikolwiek dalszy dostęp do danych. Wiele z nich pozwala procent odczytu buforu zapisu w stosunku do ustalane dla uzyskania optymalnej wydajności. Niektóre zawierają obszarów składowania dużej ilości pamięci. W rzeczywistości dla pewnego specyficznego segmentu rynku niektórzy producenci sprzętu oferują wysokiej klasy podtrzymywanej bateryjnie systemy buforowania dysków z wielu gigabajtów pamięci podręcznej. Te może znacznie poprawić wydajność bazy danych.

Transfery we/wy, które są wykonywane bez użycia buforu mogą być znacznie wolniejsze z powodu szybkości obrotowej dysków twardych, czasu wymaganego na fizyczne przesunięcie głowic i innych czynników. Instalacje programu SQL Server są przeznaczone do systemów wyposażonych w kontrolery buforowania. Te kontrolery wyłączyć pamięć podręczną na dysku i zapewniają stabilne nośniki buforujące spełniające wymagania we/wy programu SQL Server. Eliminują problemy z wydajnością związane z wyszukiwania i dostępu, stosując różne optymalizacje buforowania kontrolera razy.

Istnieje wiele rodzajów implementacji podsystemu. RAID i SAN to dwa przykłady rodzajów implementacji podsystemu. Te systemy są zazwyczaj budowane przy użyciu dysków typu SCSI. Istnieje kilka przyczyn tego. W poniższej sekcji opisano ogólnie rozważania dotyczące dysków.

Dyski SCSI:
  • Są na ogół przeznaczone do intensywnego użytkowania.
  • Zazwyczaj są skierowane do implementacji wieloużytkownikowych, oparte na serwerze.
  • Zazwyczaj mają lepsze dłuższy średni czas między awariami niż inne implementacje.
  • Zawierają zaawansowane rozwiązania heurystyczne służące do przewidywania awarii.
Inne implementacje dysków, takie jak IDE, ATA i SATA:
  • Są na ogół przeznaczone do mało i średnio intensywnego użytkowania.
  • Są na ogół przeznaczone na pojedyncze aplikacje oparte na użytkowniku.
  • Niektóre nowsze implementacje zawierają zaawansowane rozwiązania heurystyczne służące do przewidywania awarii.
Kontrolery inne niż SCSI, opartych na komputerach biurowych wymagają większej przepustowości procesora głównego (CPU) i często są ograniczone przez jednego aktywnego polecenia. Na przykład dysk inny niż SCSI naprawia błędny blok, dysk wymaga, aby czekać na jej ukończenie. Kontroler ATA stanowi inny przykład. Kontroler ATA obsługuje 2 urządzenia, ale tylko jedno polecenie może być aktywne. To pozostawia jeden dysk bezczynności, podczas gdy drugi obsługuje oczekujące polecenie. Systemy RAID oparte na technologii typu desktop mogą występować wszystkie te symptomy i znacznie dotkniętych najwolniejszy. Chyba, że systemy te korzystały z zaawansowanych rozwiązań, ich wydajność nie będzie dorównywać wydajności systemów SCSI.

Istnieją sytuacje, w których napęd oparty na pulpicie lub w tablicy jest właściwe i niedrogie rozwiązanie. Na przykład jeśli ustawione jest tylko do odczytu bazy danych dla raportowania, powinny nie wystąpią wielu czynników wydajność bazy danych OLTP po wyłączeniu buforowania dysku.

Rozmiary dysków stale rosną. Niski koszt o wysokiej pojemności dysków może być bardzo atrakcyjne. Ale podczas konfigurowania dysków na potrzeby programu SQL Server i potrzeb biznesowych odpowiedzi czas należy rozważyć następujące kwestie:
  • Projekt ścieżki dostępu
  • Wymóg, aby wyłączyć pamięć podręczną na dysku
Poniższa tabela zawiera komentarze wysokiego poziomu. Informacje komentarza jest oparte na typowych konfiguracji producentów.

Typ systemu dyskowegoKomentarze
IDE i ATA
  • Prędkość obrotowa 7200 obr. / min.
  • Przeznaczone do komputerów stacjonarnych i aplikacji użytkownika.
  • Domyślnie bufor dysku jest włączona. Użyj "Dysku właściwości", karta sprzęt, aby uzyskać dostęp do "właściwości", karty "Zasady", aby sterować ustawienie buforowania dysku.

    Uwaga Niektóre stacje nie honoruje to ustawienie. Takie dyski wymagają użycia specjalnego narzędzia producenta do wyłączenia wewnętrznego buforu.
  • Buforowanie dysku należy wyłączyć, aby używać dysku z programem SQL Server.
  • IDE i systemów opartych na procesorach ATA mogą opóźniać polecenia, gdy wykonują takie operacje, jak naprawa błędnego bloku. To może spowodować okresy zatrzymania aktywność We/Wy.
IDE/komputer przenośny
  • Prędkość obrotowa 5200 obr. / min.
  • Przeznaczone do komputerów przenośnych.
  • Zobacz komentarze w sekcji IDE i ATA.
  • Urządzenia ReadyDrive oraz NAND Flash mogą zapewnić stabilne możliwości we/wy.
SATA
  • Prędkość obrotowa 7200 obr. / min.
  • Przeznaczone do komputerów biurkowych i serwerów średniej klasy.
  • Domyślnie bufor dysku jest włączona. Użyj "Dysku właściwości", karta sprzęt, aby uzyskać dostęp do "właściwości", karty "Zasady", aby sterować ustawienie buforowania dysku.

    Uwaga Niektóre stacje nie honoruje to ustawienie. Takie dyski wymagają użycia specjalnego narzędzia producenta do wyłączenia wewnętrznego buforu.
  • Magazyn większe pojemności dysków i buforów niż w IDE i ATA.
  • Buforowanie dysku należy wyłączyć, aby używać dysku z programem SQL Server.
  • Mniej okablowania i połączeń.
  • Łatwe łączenie z dyskami Serial Attached SCSI (SAS) oraz instalacji.
  • Niektóre zawierają mechanizmy przewidywania awarii.
SCSI
  • Prędkość obrotowa 10 000 i 15 000 obr. / min.
  • Zaprojektowane do serwerów i aplikacji wieloużytkownikowych.
  • Przeznaczony dla wydłużonym i cena.
  • Domyślnie bufor dysku jest włączona. Użyj "Dysku właściwości", karta sprzęt, aby uzyskać dostęp do "właściwości", karty "Zasady", aby sterować ustawienie buforowania dysku.

    Uwaga Niektóre stacje nie honoruje to ustawienie. Takie dyski wymagają użycia specjalnego narzędzia producenta do wyłączenia wewnętrznego buforu.
  • Buforowanie dysku należy wyłączyć, aby używać dysku z programem SQL Server.
  • Systemach macierzowych i SAN zazwyczaj mniej okablowania i połączeń.
  • Zawierają mechanizmy przewidywania awarii.
Serial Attached SCSI (SAS) zawiera zaawansowane kolejkowanie do 256 poziomów. SAS obejmuje również funkcje, takie jak kierownik kolejki i poza kolejnością usługi kolejkowania wiadomości. System SAS jest zaprojektowany w sposób umożliwiający korzystanie z SAS i SATA w tym samym systemie. Zalety rozwiązania SAS są oczywiste.

Instalacja programu SQL Server zależy od zdolności kontrolera wyłączyć pamięć podręczną na dysku i zapewniają stabilne buforu we/wy. Zapisywanie danych poza kolejnością na różnych dyskach nie jest przeszkodą dla programu SQL Server tak długo, jak długo kontroler zapewnia odpowiedni stabilny nośnik na potrzeby buforowania. Złożoność konstrukcji kontrolera zwiększa się zawansowane techniki zabezpieczeń, takie jak dublowanie.

Aby w pełni zabezpieczyć dane, powinny zapewnić poprawną obsługę buforowania wszystkich danych. W wielu sytuacjach oznacza to konieczność wyłączenia buforowania zapisu stacji dysków.

Uwaga Upewnij się, że wszelkie alternatywny mechanizm buforowania prawidłowo może obsługiwać wiele typów awarii.

Firma Microsoft przeprowadziła testowanie kilku dysków SCSI i IDE przy użyciu narzędzia SQLIOSim. To narzędzie symuluje działanie ciężkich asynchronicznego odczytu/zapisu na symulowanym urządzeniu danych i dziennika urządzenia. Statystyki testu wydajności reprezentują średnią liczbę operacji zapisu na sekundę od 50 do 70 dla dysku z wyłączonym buforowaniem i OBROTOWEJ z przedziału od 5200 do 7200.

Aby uzyskać dodatkowe informacje i szczegółowe informacje o SQLIOSim zobacz następujący artykuł z bazy wiedzy Microsoft Knowledge Base:
Jak używać narzędzia SQLIOSim, aby zasymulować działanie serwera SQL w dyskowym podsystemie 231619
Wielu producentów komputerów (na przykład Compaq, Dell, Gateway lub HP) zamawia dyski z wyłączonym buforowaniem zapisu. Jednak testy wykazują, że to nie zawsze będzie Jeśli więc należy zawsze przetestować go całkowicie.

Uwaga Jeśli masz pytania o stanie buforowania dysku, skontaktuj się z producentem i uzyskaj odpowiednie ustawienia zworek lub narzędzie do wyłączenie buforowania operacji zapisu.
SQL Server wymaga systemów do obsługi "gwarantowanej dostawy na stabilne nośniki", jak wskazano zgodnie z Wymagania programu SQL Server we/wy niezawodności. Aby uzyskać więcej informacji na temat wymagań wejściowych i wyjściowych dla aparatu bazy danych programu SQL Server, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:

Wymagania dotyczące 967576 Microsoft SQL Server bazy danych aparatu wejścia/wyjścia