Spis treści

Transkrypt

Spis treści
Spis treści
Historia serii Inside Microsoft SQL Server
Struktura serii
Inside Microsoft SQL Server 2005: T-SQL Querying
Inside Microsoft SQL Server 2005: T-SQL Programming
Inside Microsoft SQL Server 2005: The Storage Engine
Inside Microsoft SQL Server: Query Tuning and Optimization
Przykłady i skrypty
Tematy pominięte
ZastrzeŜenia
Wsparcie
Materiały uzupełniające w witrynie Web
Serwis Microsoft Learning
1
2
Metodologia rozwiązywania problemów z wydajnością
xi
xii
xii
xiii
xiii
xiii
xiv
xiv
xv
xv
xv
xv
1
Czynniki wpływające na wydajność
Architektura aplikacji
Projekt aplikacji
Transakcje i poziomy izolacji
Kod Transact-SQL
Zasoby sprzętowe
Konfiguracja SQL Server
Rozwiązywanie problemów – przegląd
Tworzenie wzorca odniesienia
Monitorowanie obciąŜenia
Wykrywanie, izolowanie i rozwiązywanie typowych problemów z wydajnością
Podsumowanie
2
2
4
7
10
12
12
15
15
20
21
58
Śledzenie i profilowanie
59
Architektura i terminologia SQL Trace
Wewnętrzne składniki śledzenia
Dostawcy I/O śledzeń
Bezpieczeństwo i uprawnienia
Uprawnienie ALTER TRACE
Ochrona poufnych danych zdarzeń
Wprowadzenie do narzędzia Profiler
Podstawy
Zapisywanie i odtwarzanie śladów
Śledzenie i gromadzenie danych po stronie serwera
Skryptowanie śledzenia po stronie serwera
Przeglądanie metadanych śledzenia po stronie serwera
Odczytywanie danych ze śladów po stronie serwera
Zatrzymywanie i zamykanie śledzenia
Dostawca zbioru wierszy – zasady działania
Rozwiązywanie problemów i analiza za pomocą śladów
Często wykorzystywane klasy zdarzeń SQL Trace
Dostrajanie wydajności
Identyfikowanie wyjątków
60
60
61
62
62
62
63
63
67
72
72
76
78
79
80
83
83
86
91
3
4
Debugowanie zakleszczeń
Debugowanie procedur składowanych
Uwarunkowania i projektowanie śledzenia
SQL Server Profiler – uŜywać czy nie?
Redukowanie narzutu śledzenia
Maksymalna wielkość pliku, cykliczność i gromadzenie danych
Inspekcja: Wbudowane śledzenia SQL Server
Śledzenie domyślne
Czarna skrzynka
Inspekcje C2 i Common Criteria
Podsumowanie
94
98
101
101
102
103
104
104
105
106
107
Wykonywanie zapytań
109
Przetwarzanie i wykonywanie zapytań – przegląd
Iteratory
Właściwości iteratorów
Odczytywanie planów zapytań
Opcje prezentacji planu zapytania
Analizowanie planów
Skanowanie i wyszukiwanie
Predykaty wyszukiwalne i przykrywane kolumny
Przeszukiwanie za pomocą zakładek
Złączenia
Agregacje
Scalanie
Zaawansowane operacje na indeksach
Podzapytania
Równoległość
Wstawianie, aktualizacja i usuwanie
Podsumowanie
109
109
111
113
113
122
122
125
128
131
145
156
161
169
184
203
204
Rozwiązywanie problemów z wydajnością zapytań
205
Kompilacja i optymalizacja
Kompilacja
Optymalizacja
Jak działa optymalizator zapytań
Rozpoznawanie problemów w planach zapytań
Błędy oszacowania mocy zbiorów
RóŜne znaki ostrzegawcze
Monitorowanie wydajności zapytania
STATISTICS IO
STATISTICS TIME
Usprawnianie zapytań
Przeprojektowanie zapytania
Usprawnienia schematu
Zarządzanie statystykami
Tworzenie uŜytecznych indeksów
205
206
207
209
225
225
226
228
228
232
232
233
234
236
239
5
6
Wskazówki optymalizacyjne w SQL Server 2005
Najlepsze wskazówki praktyczne dotyczące przetwarzania zapytań
Programowanie zorientowane na zbiory
Zapewnienie informacji statystycznych i ograniczeń
Unikanie niepotrzebnej złoŜoności
OstroŜne stosowanie dynamicznego SQL
Podsumowanie
247
280
280
281
281
282
283
Buforowanie i rekompilacja planów
285
Bufor planów
Metadane buforu planów
Czyszczenie buforu planów
Mechanizmy buforujące
Buforowanie zapytań ad hoc
Autoparametryzacja
Przygotowane zapytania
Skompilowane obiekty
Przyczyny rekompilacji
Wewnętrzne cechy buforu planów
Magazyny buforu
Plany skompilowane
Plany wykonywalne
Metadane buforu planów
Uchwyty (handles)
sys.dm_exec_sql_text
sys.dm_exec_cached_plans
sys.dm_exec_cached_plan_dependent_objects
sys.dm_exec_requests
sys.dm_exec_query_stats
Zarządzanie wielkością buforu
Lokalna presja na pamięć
Obliczanie kosztów dla wpisów buforów
Obiekty w buforze planów: wprowadzenie
Wiele planów w buforze
Korzystanie z procedur składowanych i innych mechanizmów buforujących
Rozwiązywanie problemów dotyczących buforu planów
Statystyki oczekiwań sygnalizujące problemy z buforem planów
Inne zagadnienia dotyczące buforowania
Rozwiązywanie problemów z buforowaniem i rekompilacją – podsumowanie
Przewodniki planów i wskazówki optymalizacji
Podsumowanie
285
286
286
287
288
290
295
297
300
308
309
310
310
311
311
312
313
314
314
315
315
317
318
319
321
322
323
323
325
326
328
338
Problemy ze współbieŜnością
339
Nowe narzędzia do rozwiązywania problemów ze współbieŜnością
Nowe narzędzie wykrywania blokowania: sys.dm_os_waiting_tasks
Nowe narzędzie eliminacji problemów z blokowaniem: poziomy izolacji
oparte na wersjonowaniu wierszy
340
341
341
Typy problemów ze współbieŜnością
Rozwiązywanie problemów z blokadami
Rozwiązywanie problemów z pamięcią wykorzystywaną przez blokady
Czas wygaśnięcia blokady
Eskalacja blokad
Rozwiązywanie problemów z zastojami
Wykrywanie zastojów
Ustalanie przyczyn zastojów
Rozwiązywanie problemów z blokowaniem
Zakleszczenia
Typy zakleszczeń
Wykrywanie zakleszczeń
Ustalanie przyczyn zakleszczeń
Rozwiązywanie zakleszczeń
Rozwiązywanie problemów dotyczących tempdb w poziomach izolacji
opartych na wersjonowaniu wierszy
Problemy z blokadami współuŜytkowanymi przy migawkowych
poziomach izolacji
Potencjalne konflikty wynikające ze stosowania poziomu izolacji SNAPSHOT
Monitorowanie opcji izolacji migawkowych
Rozwiązywanie problemów dotyczących migawkowych poziomów izolacji
Właściwe wykorzystanie izolacji migawkowych
Podsumowanie
342
342
342
344
344
347
348
356
358
361
362
366
367
371
Dodatkowe źródła
401
Indeks
403
376
377
385
393
396
398
400