Administratorzy baz danych odgrywają istotną rolę w organizacji. Jako opiekunowie danych są odpowiedzialni za zarządzanie wszystkimi aspektami wydajności bazy danych, w tym wysoką dostępnością, szybkim czasem przetwarzania zapytań oraz ograniczaniem ryzyka i odtwarzaniem po awarii. Ponadto administratorzy baz danych są odpowiedzialni za cel biznesowy, jakim jest utrzymywanie baz danych organizacji z myślą o ROI i oszczędnościach.
Ze wszystkimi różnymi kapeluszami, które noszą, administratorzy baz danych muszą pracować wydajnie, a efektywne zarządzanie czasem jest ich najlepszym przyjacielem. Najlepszym sposobem na osiągnięcie wydajności jest skupienie się w pierwszej kolejności na kluczowych działaniach, które pomogą utrzymać optymalne działanie baz danych.
Oto cztery działania związane z monitorowaniem baz danych, które powinny znaleźć się na szczycie listy „must-know” każdego DBA.
Jak (i dlaczego) dostosować ustawienia domyślne w SQL Server
Wielu administratorów baz danych uruchamia SQL Server w stanie, w jakim jest, od razu po wyjęciu z pudełka. Jednak konfiguracje domyślne nie zawsze są najlepszym wyborem z punktu widzenia bezpieczeństwa lub wydajności. Bazy danych każdej organizacji są inne i spełniają różne potrzeby biznesowe, dlatego sensowne jest, aby nie każda baza danych była skonfigurowana w ten sam sposób.
W zależności od konkretnych potrzeb i preferencji dotyczących bazy danych istnieje kilka domyślnych ustawień SQL Server, które możesz zmienić:
- Współczynnik wypełnienia:Jeśli tworzysz indeks bez określenia wartości współczynnika wypełnienia, wartością domyślną jest 0. Oznacza to, że strona wypełni się do pełna, a wszelkie wstawienia, usunięcia lub aktualizacje mogą spowodować nadmierne podziały i fragmentację strony.
Nie ma uniwersalnej „poprawnej” wartości współczynnika wypełnienia, ale 80-90 jest zwykle bezpiecznym wyborem. Ten zakres wartości pozwala na wypełnienie 80-90% strony, pozostawiając 10-20% wolnego miejsca.
- Próg kosztów dla równoległości:próg kosztów dla równoległości to wartość, przy której aparat SQL Server uruchamia plany równoległe dla zapytań. Wartość domyślna to pięć sekund, ale ta wartość jest dość niska i może tworzyć wiele niepotrzebnie złożonych zapytań, co negatywnie wpłynie na wydajność.
Zacznij od ustawienia 20 sekund i dostosuj w razie potrzeby w oparciu o oczekiwania CXPACKET i użycie procesora.
- Autorozrost pliku bazy danych:Autorozrost to proces, który występuje, gdy silnik SQL Server zwiększa rozmiar pliku bazy danych, gdy brakuje w nim miejsca. Wielkość przyrostu pliku jest domyślnie ustawiona na 1 MB dla plików danych i 10 procent dla plików dziennika transakcji.
Każda baza danych będzie rosła w różnym tempie, więc oszacuj, jak bardzo Twoja baza danych wzrośnie i odpowiednio ustaw wartość.
- Model odzyskiwania bazy danych:Domyślny model odzyskiwania to FULL po wyjęciu z pudełka, ale nie jest to wydajne dla wszystkich baz danych.
Zmień ustawienie na PROSTE dla baz danych, które nie mają kluczowego znaczenia dla firmy i pozostaw ustawienie na FULL tylko dla produkcyjnych baz danych wysokiego ryzyka. - Maksymalna pamięć serwera:Wartość domyślna to 2 TB, co oznacza, że program SQL Server alokuje całą pamięć z systemu operacyjnego. Nie pozostawia to żadnej pamięci do użycia przez system operacyjny.
Dostosuj ustawienie, aby zmaksymalizować ilość pamięci dostępnej dla procesu programu SQL Server, ale w razie potrzeby pozostaw trochę do wykorzystania przez system operacyjny. - Maksymalny stopień równoległości (MAXDOP):MAXDOP kontroluje liczbę procesorów używanych do wykonywania zapytania w planie równoległym. Wartość domyślna to 0, co oznacza, że SQL Server może określić, ile procesorów może użyć. Jeśli zostawisz koszt progu równoległości na domyślną wartość 5, możesz wykorzystać wszystkie procesory dla każdego zapytania.
Idealne ustawienie MAXDOP będzie się różnić w zależności od konkretnego systemu, ale firma Microsoft oferuje tutaj kilka sugestii. - Kompresja kopii zapasowej:Domyślnym ustawieniem tej funkcji jest WYŁĄCZONA. Jednak kompresja kopii zapasowych przyspiesza operacje tworzenia kopii zapasowych bazy danych i tworzy mniejsze pliki kopii zapasowych, więc warto ją włączyć.
Ostatnia wskazówka dotycząca dostosowania ustawień SQL Server do wartości domyślnych:Zawsze dokładnie przetestuj system po zmianie jakichkolwiek ustawień, aby upewnić się, że nie pojawiły się żadne problemy.
Jak wyeliminować wąskie gardła w SQL Server
Wąskie gardła programu SQL Server są częstym źródłem problemów z wydajnością, w tym nadmiernego obciążania procesora przez program SQL Server, długich czasów wykonywania zapytań, nadmiernej liczby operacji we/wy i ekstremalnej aktywności na dyskach.
Istnieje wiele innych niż wąskie gardło powodów, dla których w Twojej bazie danych mogą występować te problemy z wydajnością, ale jeśli problem wynika z wąskich gardeł programu SQL Server, mogą wystąpić trzy główne obszary:pamięć, operacje we/wy i procesor.
Wąskie gardła pamięci wynikają z niewystarczających zasobów pamięci lub działań programu SQL Server wykorzystujących zbyt dużą ilość dostępnej pamięci. Zwróć uwagę na dłuższe czasy wykonywania zapytań, nadmierne operacje we/wy, komunikaty o braku pamięci w dzienniku aplikacji i częste awarie systemu.
Wąskie gardła we/wy występują, gdy nie ma wystarczającej ilości dostępnego miejsca do obsługi regularnych operacji bazy danych, takich jak tempDB. Zwróć uwagę na długie czasy odpowiedzi, spowolnienia aplikacji i częste przerwy w wykonywaniu zadań.
Wąskie gardła procesora są spowodowane niewystarczającymi zasobami sprzętowymi. Zwróć uwagę w monitorowaniu bazy danych na dane z dziennika pokazujące, że SQL Server zużywa zbyt dużo procesora.
Jak zapobiegać wzrostowi tempDB
TempDB to tymczasowy obszar roboczy w instancjach SQL Server używany do tworzenia i przechowywania obiektów pośrednich i tymczasowych. TempDB jest jednym z najbardziej aktywnych zasobów w środowisku SQL Server, dlatego ważne jest monitorowanie i kontrolowanie nadmiernego wzrostu tempDB.
TempDB jest często używany w wystąpieniu, ponieważ służy do przechowywania obiektów użytkownika, obiektów wewnętrznych i magazynów wersji. Nadmierny wzrost bazy danych tempDB może powodować problemy z wydajnością, dlatego ważne jest śledzenie dużych zapytań, tabel tymczasowych i zmiennych tabel, które wykorzystują dużą ilość miejsca na dysku bazy danych tempDB.
Aby zoptymalizować rozmiar i wzrost bazy danych tempDB, firma Microsoft zaleca następujące najlepsze praktyki:
- Ustaw model odzyskiwania tempDB na PROSTY
- Zezwalaj plikom tempDB na automatyczny wzrost zgodnie z wymaganiami
- Ustaw przyrost wzrostu pliku na rozsądny rozmiar, aby uniknąć wzrostu plików bazy danych tempDB o zbyt małą wartość
- Wstępnie przydziel miejsce dla wszystkich plików tempDB, ustawiając rozmiar pliku na wartość wystarczająco dużą, aby pomieścić typowe obciążenie w środowisku
- Ustaw każdy plik danych w tym samym rozmiarze
Możesz dostosować rozmiar i parametry wzrostu plików danych tempDB za pomocą studia zarządzania SQL Server.
Jak obliczyć całkowity koszt posiadania
Chociaż możesz nie spędzać dużo czasu na myśleniu o budżecie swojej firmy, lepiej uwierz, że robi to dyrektor finansowy. Kiedy nadejdzie czas, aby poprosić o nową technologię monitorowania wydajności, mądrze jest przygotować się na twarde dane, aby wykonać kopię zapasową żądania.
Jednym z najbardziej wpływowych danych, które można przedstawić, jest potencjalny całkowity koszt posiadania (TCO) nowej technologii w porównaniu z obecnym rozwiązaniem. Oprócz kosztów bezpośrednich należy wziąć pod uwagę koszty pośrednie, takie jak koszty infrastruktury i zasobów, takie jak konserwacja.
Zmniejszenie całkowitego kosztu posiadania jest wspólnym celem administratorów baz danych, którzy chcą wymienić swoje obecne narzędzie do monitorowania wydajności bazy danych, dlatego należy wziąć pod uwagę kilka czynników. Jak wspomniano powyżej, ważne jest, aby przyjrzeć się nie tylko kosztom bezpośrednim, takim jak cena zakupu, ale także kosztom pośrednim, takim jak przechowywanie i koszty zasobów, takie jak szkolenie.
Aby określić TCO dla nowego narzędzia, podłącz swoje dane do kalkulatora TCO i zobacz, jakie są oszczędności, jeśli w ogóle.