Administratorzy baz danych noszą za kulisami wiele kapeluszy — od planowania pojemności, przez zabezpieczenia, po odzyskiwanie danych. Być może najbardziej widocznym obowiązkiem administratora baz danych jest monitorowanie wydajności SQL Server. Chociaż codzienne zadania związane z utrzymaniem wysokowydajnego systemu mogą pozostać niezauważone przez świat zewnętrzny, lepiej uwierz, że ludzie zaczną zwracać uwagę, gdy wydajność nie będzie idealna.
Awarie bazy danych, długi czas odpowiedzi i inne problemy, z którymi borykają się użytkownicy, są niekorzystne dla biznesu. A ponieważ wydajność SQL Server (lub jej brak) leży bezpośrednio w domenie DBA, słabo wydajne bazy danych są szkodliwe dla bezpieczeństwa pracy.
Pomijając zagrożenie bezrobociem, zapewnienie maksymalnej wydajności SQL Server ma kluczowe znaczenie dla płynnego działania Twojej organizacji, dlatego opracowaliśmy pięć sztuczek, które administratorzy baz danych muszą znać, aby zoptymalizować wydajność SQL Server.
Automatyzacja rutynowych zadań i konserwacji
W dzisiejszych czasach administrator baz danych nie ma powodu, aby ręcznie wykonywać wiele codziennych zadań i kontroli konserwacyjnych. Dzisiejsze narzędzia do monitorowania wydajności SQL Server mogą automatycznie monitorować miejsce na dysku, sprawdzać dzienniki błędów i weryfikować kopie zapasowe. Możesz nawet skonfigurować alerty systemowe, które nie tylko informują o wystąpieniu problemu, ale także dostarczają informacji o wadze i rodzaju problemu.
Jedną z głównych zalet tych narzędzi do monitorowania jest to, że wiele funkcji monitorowania wydajności jest dostępnych za pośrednictwem urządzenia mobilnego, dzięki czemu rozwiązywanie problemów jest znacznie bardziej elastyczne. Możesz monitorować i testować swój system praktycznie z dowolnego miejsca w dowolnym czasie.
Śledź wskaźniki wydajności
Oczywiście ważne jest, aby narzędzia do monitorowania wydajności SQL Server wyłapywały i naprawiały bieżące problemy, ale śledzenie wydajności w przeszłości jest również bardzo przydatne. Monitorowanie i analizowanie wydajności bazy danych w czasie pomaga identyfikować trendy i przewidywać przyszłe problemy z wydajnością. Śledzenie historii wydajności dostarcza danych o tym, czy wydajność jest lepsza, czy gorsza w danym okresie.
Analiza obciążenia to kolejny sposób na uzyskanie metryk wydajności, które pomagają poprawić wydajność programu SQL Server. Przeprowadź analizę, aby określić, w jaki sposób użytkownik, baza danych, host lub instrukcja SQL wpływają na obciążenie. Jeśli wyizolujesz źródło, które negatywnie wpływa na system, znacznie łatwiej będzie podjąć odpowiednie kroki w celu rozwiązania problemu.
Zidentyfikuj główną przyczynę wąskich gardeł
Jak wspomniano powyżej, po wyizolowaniu źródła wąskiego gardła lub zabójcy wydajności znacznie łatwiej jest naprawić problem. Niektóre typowe źródła wąskich gardeł i objawów, na które należy uważać, to:
- Problemy z procesorem:SQL Server obciąża procesor
- Problemy z pamięcią:dłuższe czasy wykonywania zapytań
- Problemy z przechowywaniem:ekstremalna aktywność na dyskach i długi czas oczekiwania na wejście/wyjście
- Problemy we/wy:czas oczekiwania WRITELOG jest długi w porównaniu do całkowitego czasu oczekiwania
Po zidentyfikowaniu wąskiego gardła możesz wypróbować kilka rozwiązań, które często rozwiązują typowe problemy z wydajnością, w tym:
- Dostrajanie programu SQL Server:wyizoluj określone zapytanie, które było opóźnione, określony czas oczekiwania powodujący opóźnienie oraz wpływ wąskiego gardła na czas
- Pozbądź się przestarzałych i zduplikowanych indeksów:Przyspiesza wykonywanie zapytań, ponieważ optymalizator nie musi uwzględniać wielu indeksów podczas analizowania wydajności zapytań i określania planu.
- Napraw fragmentację:Okresowe przebudowywanie lub defragmentowanie indeksów poprawi wydajność, zmniejszając liczbę rozproszonych lub częściowo wypełnionych stron danych, które SQL Server musi odczytać.
Przeprowadzaj rutynowe kontrole stanu wydajności
Zapobieganie jest prawie zawsze lepsze niż leczenie. Użyj kontroli stanu, aby zidentyfikować rzeczywiste i potencjalne problemy w systemie. Kontrole stanu pomogą Ci zidentyfikować problemy z bezpieczeństwem, odzyskiwaniem po awarii, pamięcią, we/wy i konfiguracją, zanim spowodują poważne problemy z wydajnością.
Regularne kontrole stanu powinny obejmować:
- Sprawdzanie brakujących indeksów:Brakujące indeksy spowalniają odpowiedź programu SQL Server, ponieważ musi on przeszukiwać każdy rekord w poszukiwaniu danych. Ale nie bądź zbyt szybki, aby po prostu dodać brakujące indeksy; dodanie niepotrzebnych indeksów może również negatywnie wpłynąć na wydajność.
- Obserwowanie nieproporcjonalnych poziomów zapytań ad hoc:Sporadyczne używanie zapytań ad hoc nie stanowi problemu. Ale kiedy są używane zbyt często, spada wydajność. SQL Server nie używa ponownie tych instrukcji, więc pamięć podręczna procedur zostaje rozdęta, powodując, że pamięć podręczna bufora opróżnia dane. SQL Server musi wtedy odczytywać dane z dysku (powoli) zamiast z pamięci.
- Wyszukiwanie nieaktualnych statystyk:Optymalizator zapytań programu SQL Server używa statystyk do obliczania szacowanego kosztu operacji. Nieaktualne statystyki mogą spowodować, że optymalizator zapytań wybierze nieoptymalny plan wykonania.
Uaktualnij do najnowszej wersji serwera SQL
To wydaje się dość oczywiste, ale jeśli jeszcze tego nie zrobiłeś, uaktualnij do najnowszej wersji SQL Server. SQL Server 2000, 2005 i 2008 nie są już aktywnie rozwijane, a nowsze wersje mają wiele funkcji, które zdecydowanie zwiększą wydajność. Funkcje te obejmują najnowszą wersję optymalizatora zapytań SQL Server, nowe zestawy instrukcji procesora i oczywiście poprawki błędów.