Czas trwania
2-3 dni
Abstrakt
Szkolenie ma na celu zapoznanie uczestników z architekturą przetwarzania zapytań przez SQL Server oraz przedstawić problemy i sposoby optymalizacji T-SQL. Podczas kursu uczestniczy poznają różne sposoby fizycznego przetwarzania zapytania – plany zapytań. Są one fundamentem optymalizacji kodu T-SQL.
Zagadnienia zostały dobrane pod kątem prezentowania praktycznych rozwiązań najczęściej pojawiających się sytuacji i problemów.
Program szkolenia zawiera rozszerzenie o najlepsze praktyki tworzenia zapytań.
Wymagana jest znajomość T-SQL na poziomie dobrym.
Zagadnienia
Query processing |
Proces kompilacji planów |
Wstęp do czytania planów zapytania |
Podstawy optymalizacji |
Co optymalizować? |
Jak mierzyć czy optymalizacja przebiegłą pomyślnie |
Architektura dostępu do dysku – buffer pool, odczyty logiczne i fizyczne |
Metody dostępu |
Budowa tabel i indeksów jako nośnika danych |
Stos |
Tabela klastrowana |
Indeksy nieklastrowane |
Analiza metod dostępów |
Scany |
Seek’i |
Wykorzystanie różnych indeksów |
Zaawansowane metody dostępu |
Łączenia tabel |
Logiczne joiny |
Fizyczne operatory łączenia |
Nested loop |
Merge join |
Hash match |
Porównanie fizycznych operatorów i skuteczne ich użycie |
Agregaty |
Elementy językowe używające agregacji |
Group By |
Agregaty |
Distinct |
Algorytmy |
Stream aggregate |
Hash match |
Inne operacja i ich operatory fizyczne |
Sortowanie i row_number |
Wykrywanie dziur i wysp |
Agregacja warunkowa |
Rekursywne zapytania – CTE |
Operator CROSS APPLY |
Podzapytania skorelowane i nieskorelowane |
Różne funkcje tabelaryczne |
Cacheowanie planów |
Autoparametryzacja |
Parameter sniffing |
Plan reuse |
Problemy wynikające z cachowanie planów i sposoby ich rozwiazywania |
Dynamiczny sql, a kompilacja planów |
Pomocne narzędzia i techniki |
SQL Profiler |
Database Tuning Advisor |
Plan guides i hinty – sposoby na wymuszenie konkretnych planów jako ostatnia deska ratunku |
Blokady i obsługa transakcji |
Architektura blokad w SQL Serverze z uwzględnieniem poziomów izolacji |
Poziomy odzyskiwanie bazy i ich wpływ na wydajność |
Praktyczne tips & tricks |
Jak generować szybko dane przykładowe? |
Deadlock między 2 sesjami: SELECT i INSERT |