- Znajomość obsługi komputera i systemu operacyjnego Windows
Zadaniem administratora baz danych jest zapewnienie użytkownikom możliwości bezproblemowego korzystania z systemu bazodanowego. Oznacza to nie tylko zagwarantowanie dostępności tego serwera i bezpieczeństwa przechowywanych w nim danych, ale również dbanie o utrzymanie odpowiedniej wydajności całego systemu — jeżeli ta wydajność spadnie poniżej pewnej granicy, baza danych będzie de facto niedostępna dla użytkowników.
Chociaż administrator rzadko ma możliwość zmiany kodu (zarówno po stronie aplikacji klienckiej jak i obiektów bazodanowych), może on nie tylko poprawić wydajność systemu bazodanowego poprzez właściwą konfigurację serwera SQL i bazy danych, utworzenie odpowiednich indeksów czy zmianę fizycznej struktury tabel, ale także wykryć i udokumentować przyczyny jego niskiej wydajności. Przygotowany przez niego raport może być wykorzystany nie tylko jako uzasadnienie konieczności rozbudowy sprzętu, ale przede wszystkim w negocjacjach z producentem oprogramowania prowadzących do usunięcia wykrytych błędów.
Administrator powinien również z wyprzedzeniem wykrywać potencjalne problemy i rozwiązywać je, zanim ich skutki staną się widoczne dla użytkowników. Takie proaktywne podejście obejmuje m.in. monitorowanie wielkości plików baz danych, wykorzystanie zasobów systemowych, liczbę aktywnych użytkowników i czas wykonywania kluczowych zapytań.
Cele szkolenia:
- przygotowanie administratorów serwerów SQL do proaktywnego monitorowania, diagnozowania i rozwiązywania problemów, ze szczególnym uwzględnieniem problemów wydajnościowych.
Budowa i działanie serwera SQL
Omawiane zagadnienia:
- Architektura serwera SQL (silnik relacyjny, silnik przechowujący dane, SQLOS, warstwa protokołów sieciowych)
- Przetwarzanie żądań (harmonogram zadań serwera SQL, wątki i robotnicy, dedykowane połączenie administracyjne)
- Zarządzanie pamięcią (bufor danych, bufor procedur, mechanizm AWE, mechanizm Lazywriter)
- Budowa i działanie plików bazodanowych
- Architektura dziennika transakcyjnego i wirtualne pliki dziennika (VLFs)
- Analiza zawartości dziennika transakcyjnego
- Obcinanie dziennika
- Protokół logowania z wyprzedzeniem (WAL)
Konfiguracja serwera i systemu operacyjnego
Omawiane zagadnienia:
- Podstawowa konfiguracja systemu operacyjnego
- Szacowanie obciążenia (systemy OLTP i DW)
- Wybór odpowiedniej konfiguracji sprzętowej (referencyjne architektury firmy Microsoft)
- Konfiguracja pamięci
- Ocena wydajności procesora (współczynniki MCR i BCR)
- Ocena wydajności podsystemu wejścia-wyjścia
Konfiguracja serwera SQL
Omawiane zagadnienia:
- Wskazówki dotyczące instalacji
- Zalecenia dotyczące konfiguracji serwera SQL
- Baza TempDB — jej rola i działanie
- Sposób logowania transakcji w bazie TempDB
- Zalecenia dotyczące bazy TempDB
Typy i struktury danych
Omawiane zagadnienia:
- Typy danych
- Przechowywanie danych w wierszach (strony, zakresy, jednostki alokacji)
- Zmiana struktury tabel
- Atrybut Sparse
- Partycjonowanie
- Kompresja danych
Indeksy
Omawiane zagadnienia:
- Narzędzia służące do analizy budowy i działania indeksów
- Wady i zalety przechowywania danych w stertach (Heap)
- Budowa i działanie drzew zrównoważonych (B-tree)
- Zalecenia dotyczące kluczy indeksów zgrupowanych (Clustered)
- Sposoby w jakie serwer SQL odczytuje i modyfikuje indeksy, w tym mechanizm odczytów z wyprzedzeniem (Read-ahead) i wpływ podziałów strony (Page split) na wydajność
- Metody tworzenia indeksów na kolumnach wyliczeniowych oraz indeksów filtrowanych
- Strategia efektywnego zarzadzania indeksami polegająca na wykryciu i usunięciu nadmiarowych oraz nieużywanych indeksów, konsolidacji istniejących indeksów
- Wykrywanie i tworzenie brakujących indeksów
- Metody wykrywania i automatycznego zapobiegania logicznej i fizycznej fragmentacji indeksów
Monitorowanie pracy serwera
Omawiane zagadnienia:
- Metody oceny wydajności systemu bazodanowego
- Narzędzia serwera SQL (PerfMon, raporty konsoli SSMS, Database Tuning Advisor, Studio monitoringu, widoki i funkcje zarządcze, SQL Server Profiler & Trace)
- Narzędzia dodatkowe (SQLDiag, SQL Diag Configuration Tool, Performance Analysis of Logs, RML Utilities for SQL Server, SQL Nexus, ClearTrace)
- Metodyka analizowania oczekiwań i kolejek (mechanizm raportowania oczekiwań, typy oczekiwań i ich korelacja z kolejkami)
Optymalizacja zapytań
Omawiane zagadnienia:
- Monitorowanie pracy serwera SQL
- Zarządca zasobów
- Kontrolowanie pracy optymalizatora zapytań (statystyki, dyrektywy kompilatora, wytyczne planów — Plan Guides)
- Analiza planów wykonania zapytań
- Buforowanie i rekompilacja planów wykonania
Zarządzanie współbieżnością
Omawiane zagadnienia:
- Transakcyjne przetwarzanie danych
- Optymistyczny i pesymistyczny model współbieżności
- Obserwacja blokad
- Wykrywanie zakleszczeń
- Wersjonowanie wierszy
- Zapobieganie blokadom poprzez przełączenie bazy w tryb wersjonowania