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