W oparciu o Microsoft SQL Server
(dowolne wersje i edycje)
Cel kursu
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