
Instrukcje SQL są kluczowymi elementami typowych aplikacji bazodanowych, a więc efektywność ich wykonywania decyduje w głównym stopniu o wydajności samych aplikacji. Twórcy aplikacji bazodanowych i administratorzy baz danych często spędzają długie godziny w celu upewnienia się, że dostęp do danych istotnie odbywa się po najszybszych ścieżkach, czyli że plany wykonywania wyrażeń SQL są optymalne. Wiąże się z tym między innymi rozważanie wzajemnego związku między strukturą wyrażeń SQL a planami ich wykonywania.
Książka ta poświęcona jest jednemu z kluczowych aspektów tego związku, często niedocenianemu, aczkolwiek niezmiernie istotnemu -- wyborowi odpowiedniego planu wykorzystywanego przez określone zapytanie. Autor prezentuje matematyczną metodą optymalizacji wyrażeń SQL, opierającą się na dobrze zdefiniowanym algorytmie postępowania i prowadzącą do znajdowania optymalnych (lub niemal optymalnych) planów wykonania dla określonych wyrażeń; jest to naprawdę atrakcyjna alternatywa dla poszukiwań metodą prób i błędów, rzadko dającą optymalne rezultaty. Czytelnik znajdzie w niniejszej książce opis wielu szczegółowych zagadnień związanych z optymalizacją wyrażeń SQL i baz danych w ogólności, między innymi takich jak:
- Buforowanie danych i zarządzanie tabelami
- Indeksowanie, implementowanie indeksów i związane z tym koszty
- Filtrowanie zawartości tabel i jego związek z indeksowaniem
- Złączenia tabel i metody ich realizacji
- Analiza planów wykonywania zapytań i zarządzanie tymi planami w bazach danych Oracle, MS SQL Server i DB2
- Sporządzanie diagramów zapytań i wykorzystywanie ich do celów optymalizacji złożonych zapytań oraz do wyznaczania najlepszych planów wykonywania
- Specjalne metody optymalizacji szczególnych przypadków, w których standardowe postępowanie okazuje się niewystarczające: buforowanie wielokrotnie wydawanych zapytań, łączenie i upodobnianie zapytań itp.
Przyśpiesz działanie aplikacji -- zoptymalizuj dostęp do danych
Przedmowa (9)Wstęp (11)
Rozdział 1. Wprowadzenie (17)
- Po co optymalizować zapytania SQL? (18)
- Kto powinien zająć się optymalizacją? (20)
- Dlaczego książka ta może być pomocna? (21)
- Dodatek (23)
- Gotowe rozwiązania (24)
- Buforowanie danych (26)
- Tabele (29)
- Indeksy (32)
- Rzadziej wykorzystywane obiekty baz danych (36)
- Ścieżki dostępu do pojedynczych tabel (40)
- Wyznaczanie selektywności (48)
- Złączenia (58)
- Analiza planu wykonania zapytania bazy danych Oracle (68)
- Analiza planu wykonania zapytania bazy danych DB2 (79)
- Analiza planu wykonania zapytania bazy danych SQL Server (92)
- Uniwersalne techniki zarządzania planem wykonania zapytania (101)
- Zarządzanie planami wykonania zapytań w bazach danych Oracle (114)
- Zarządzanie planami wykonania zapytań w bazach danych DB2 (130)
- Zarządzanie planami wykonywania zapytań w bazach danych SQL Server (136)
- Po co stosować nową metodę? (143)
- Pełne diagramy zapytań (145)
- Interpretacja diagramów zapytań (164)
- Uproszczone diagramy zapytań (166)
- Ćwiczenia (169)
- Efektywne plany wykonania zapytań (174)
- Standardowa heurystyczna kolejność złączania (176)
- Proste przykłady (177)
- Szczególny przypadek (187)
- Skomplikowany przykład (190)
- Specjalne zasady postępowania dla szczególnych przypadków (194)
- Ćwiczenie (222)
- Niestandardowe diagramy złączeń (226)
- Zapytania z podzapytaniami (254)
- Zapytania z widokami (267)
- Zapytania z operacjami na zbiorach (277)
- Ćwiczenie (279)
- Argumenty przemawiające za zagnieżdżonymi pętlami (281)
- Wybieranie tabeli źródłowej (283)
- Wybieranie kolejnej tabeli złączenia (287)
- Podsumowanie (291)
- Złączenia zewnętrzne (293)
- Złączenie scalające i indeksy filtrów (299)
- Brakujące indeksy (302)
- Złączenia bez filtrów (303)
- Problemy bez rozwiązania (304)
- Gdy bardzo szybko jest zbyt wolno (307)
- Zapytania zwracające dane ze zbyt wielu wierszy (312)
- Zoptymalizowane zapytanie wolno zwracające jedynie kilka wierszy (324)
- Rozwiązania do rozdziału 5. (329)
- Rozwiązania do rozdziału 6. (333)
- Rozwiązania do rozdziału 7. (339)
- Uproszczenie zapytania do postaci diagramu (343)
- Rozwiązywanie diagramu zapytania (347)
- Sprawdzanie planu wykonania (349)
- Zmiana bazy danych (352)
- Zmiana reguł optymalizacji (353)
- Zmiana aplikacji (353)
- Spojrzenie na przykład z odpowiedniej perspektywy (354)
Skorowidz (367)