W oparciu o Microsoft SQL Server
(dowolne wersje i edycje)


Cel kursu

Wydajność zapytań SQL

Celem szkolenia Optymalizacja zapytań SQL jest poznanie aspektów związanych z wydajnością, zrozumienie procesu przetwarzania i wykonywania zapytań SQL. To także nauka korzystania z narzędzi do badania i identyfikowania wąskich gardeł systemu, porónywania wydajności zapytań. Obserwacja typowych (i nietypowych) problemów związanych z wydajnością. Zdobycie umiejętności praktycznych optymalizacji systemu, budowania punktów odniesienia oraz metodyki pracy z planami zapytań.

Dla kogo

Szkolenie kierowane głównie do programistów i administratorów. Dla osób z dobrą znajomością pisania zapytań i przynajmniej podstawową wiedzą na temat budowy baz danych. Kurs pozwala na zdobycie wszechstronnej wiedzy z zakresu optymalizacji, monitorowania i tunningu SQL Server.

Plan szkolenia

Szkolenie podzielone jest na 4 moduły. W pierwszym – wprowadzającym, omawiane są kluczowe aspekty (na poziomie ogólnym) optymalizacji i przetwarzania poleceń SQL. Prezentowane są różne metody i narzędzia do badania / monitorowania wydajności. Analiza struktur fizycznych, zrozumienie algorytmów dostępu do danych. Kolejny moduł to szczegółowa analiza indeksów dostępnych w SQL Server i rola statystyk. Przedstawiane są różne scenariusze zastosowań różnych typów indeksów. Omawiane są różnice w szacowaniu kardynalności zbiorów, typowe błędy, problemy i ich rozwiązania. Moduł trzeci to plany wykonania zapytań, aspekty parametryzacji. Szczegółowa analiza operatorów logicznych i przegląd metod sterowania planami (hints, plan guides). Ostatni moduł to monitorowanie wydajności. Analiza wąskich gardeł z wykorzystaniem liczników i stanów oczekiwań. Poznanie metodyki pracy z obciążonymi środowiskami – rozwiązywanie problemów wydajnościowych.
Każdy z modułów składa się z części teoretycznej (wykład) przeplatanej licznymi demonstracjami rzeczywistych przypadków oraz laboratorium w trakcie którego uczestnicy mają możliwość przećwiczenia prezentowanych technik, zagadnień i rozwiązań.

Program szkolenia jest elastyczny i może być dostosowany do konkretnych wymagań.


Moduł 1 Wstęp do optymalizacji

  • Przetwarzanie zapytań
    • Logiczne przetwarzanie zapytań
    • Optymalizator zapytań, proces optymalizacji
    • Plany trywialne, pełna optymalizacja
    • Drzewa logiczne, fazy upraszaczania i transformacje
  • Struktury fizyczne i metody dostępu do danych
    • Wstęp do struktur fizycznych (HOBT, tabele partycjonowane)
    • Skanowanie vs przeszukiwanie struktur
    • Rola statystyk
  • Narzędzia do badania wydajności i wstęp do planów zapytań
    • Management Studio, funkcjonalności i pułapki
    • DMO – widoki i funkcje dynamiczne
    • Extended Events – możliwości i przykłady zastosowań
    • SQL Trace i Profiler
    • Porównanie narzędzi, omówienie zalet i minusów

Moduł 2 Indeksy i statystyki

  • Indeksy w SQL Server
    • Omówienie struktur i zastosowań indeksów klastrowych
    • Indeksy nieklastrowe, pokrywające, filtrowane
    • Projektowanie indeksów kompozytowych, wybór i kolejność kolumn
    • Widoki indeksowane
    • Indeksy kolumnowe (columnstore)
    • Indeksy specjalnego zastosowania (XML, Spatial, Full-text)
  • Statystyki
    • Struktura statystyk
    • Szacowanie liczebności zbiorów (Cardinality Estimator)
    • Porównanie algorytmów estymacji – nowy i stary CE
    • Błędy estymacji (problemy niewiadomych, zmiennych etc.)
    • Statystyki wielokolumnowe, filtrowane
  • Utrzymanie statystyk i indeksów
    • Analiza użycia indeksów, cykl developerski
    • Identyfikacja brakujących indeksów
    • Database Engine Tunning Advisor
    • Fragmentacja indeksów, wpływ na wydajność
    • Usuwanie fragmentacji indeksów i stert (rebuild, reorganize, forwarding pointers)
    • Aktualizacj statystyk, automatyczna, ręczna

Moduł 3 Plany wykonania zapytań

  • Analiza planów zapytań
    • Czas życia planów, kompilacje / rekompilacje
    • Dostęp do planów zapytań
    • Analiza i czytanie planów
    • Operatory logiczne / fizyczne i ich właściwości
  • Operatory logiczne w planach zapytań
    • Operatory blokujące/nieblokujące
    • Operatory dostępu do danych, wyszukiwania w pętli, filtrowania, grupujące
    • Algorytmy łączenia zbiorów (Nested loops, Merge, Hash)
    • Grupowanie danych Stream / Hash Aggregate
    • Plany równoległe
    • Ostrzeżenia w planach
  • Parametryzacja
    • Automatyczna, wymuszona
    • Plany wykonania dla zapytań Ad hoc, obiektów programistycznych
    • Problem parameter sniffing i jego rozwiązania
  • Podpowiedzi do planów
    • Podpowiedzi (hints) dotyczące łączenia tabel i wybóru indeksów
    • Podpowiedzi na poziomie zapytania związane z celem oraz traktowaniem blokad
    • Parametryzacja, rekompilacja i wybór planu
    • Wskazówki do planu (plan guides)

Moduł 4 Monitorowanie wydajności / obciążenia serwera i rozwiązywanie problemów

  • Optymalizacja i tunning serwera (instancji)
    • Przyczyny problemów wydajnościowych
    • Identyfikacja problemów
  • Tworzenie punktów odniesienia (baseline)
    • Cele i zakres punktów odniesienia
    • Narzędzia, statystyki i liczniki dla punktów odniesienia
    • Liniczniki OS / SQL Server (CPU, Memory, IO, Access methods, SQL Statistics, Buffer Manager)
    • Przykładowy punkt odniesienia dla serwera
  • Analiza stanów oczekiwania (waits)
    • Model wykonywania zadań w SQL Server (schedulers, working threads)
    • Stany wątków (Runnable, Running, Suspended)
    • Stany i czasy oczekiwania
    • Omówienie najczęściej spotykanych problemów (CX Packets, Latch etc.)
  • Scenariusze optymalizacji
    • Szukanie kosztownych zapytań
    • Zapytania z ostrzeżeniami – identyfikacja i rozwiązanie
    • Nieaktualne statystyki i błędy estymacji
    • Dobre praktyki, wybrane ustawienia serwera

Czas trwania

Sugerowany czas realizacji materiału to 2-4 dni, w zależności od zaawansowania, liczebności grupy i potrzeb.

Wymagania

Kurs zaawansowany, wymagana biegłość w pisaniu zapytań, przynajmniej podstawowa znajomość architektury środowiska SQL Server, Windows Server.

Prowadzący
Jakub Kasprzak

Miejsce i termin

Szkolenie “Optymalizacja zapytań SQL” realizowane jest w formule zamkniętej. Jest to kurs dedykowany dla firm. Dostępny na terenie całego kraju w dowolnej lokalizacji wskazanej przez Klienta.

Cena szkolenia

Złóż zapytanie ofertowe – szkolenia@sqlpedia.pl