Course Code: optysqlserv
Duration: 21 hours
Prerequisites:
  • Znajomość obsługi komputera i systemu operacyjnego Windows
Overview:

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.
Course Outline:

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