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 |
