SQL_Optymalizacja_sqlopt.pdf

(1355 KB) Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TRE CI
SQL. Optymalizacja
Autor: Dan Tow
T³umaczenie: Marek Pa³czyñski (rozdz. 1 –; 6, dod. C),
Tomasz Pêdziwiatr (rozdz. 7 –; 10, dod. A, B)
ISBN: 83-7361-423-0
Tytu³ orygina³u:
SQL Tuning
Format: B5, stron: 348
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA
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.
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.
Tre ci poszczególnych rozdzia³ów towarzysz¹ æwiczenia kontrolne, a ca³o æ wieñczy
prezentacja zastosowania opisywanych koncepcji w (kompletnie opisanym) procesie
optymalizowania konkretnej aplikacji.
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWO CIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treści
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
Rozdział 2. Podstawowe informacje o dostępie do danych ..................................25
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
Rozdział 3. Przeglądanie i interpretacja planów wykonania zapytań...............67
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
6
Spis treści
Rozdział 4. Zarządzanie planami wykonania zapytań .......................................101
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
Rozdział 5. Sporządzanie diagramów prostych zapytań.....................................143
Po co stosować nową metodę? ..........................................................................................................143
Pełne diagramy zapytań .....................................................................................................................145
Interpretacja diagramów zapytań .....................................................................................................164
Uproszczone diagramy zapytań........................................................................................................166
Ćwiczenia..............................................................................................................................................169
Rozdział 6. Wyznaczanie najlepszych planów wykonania zapytań.................173
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
Rozdział 7. Tworzenie diagramów i optymalizacja złożonych zapytań SQL... 225
Niestandardowe diagramy złączeń ..................................................................................................226
Zapytania z podzapytaniami.............................................................................................................254
Zapytania z widokami ........................................................................................................................267
Zapytania z operacjami na zbiorach.................................................................................................277
Ćwiczenie ..............................................................................................................................................279
Rozdział 8. Dlaczego metoda diagramów działa? ................................................281
Argumenty przemawiające za zagnieżdżonymi pętlami..............................................................281
Wybieranie tabeli źródłowej ..............................................................................................................283
Wybieranie kolejnej tabeli złączenia.................................................................................................287
Podsumowanie.....................................................................................................................................291
Rozdział 9. Przypadki szczególne ............................................................................293
Złączenia zewnętrzne..........................................................................................................................293
Złączenie scalające i indeksy filtrów.................................................................................................299
Brakujące indeksy ................................................................................................................................302
Spis treści
7
Złączenia bez filtrów ...........................................................................................................................303
Problemy bez rozwiązania .................................................................................................................304
Rozdział 10. Rozwiązania dla pozornie nierozwiązywalnych problemów .....307
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
Dodatek A Rozwiązania ćwiczeń.............................................................................329
Rozwiązania do rozdziału 5...............................................................................................................329
Rozwiązania do rozdziału 6...............................................................................................................333
Rozwiązania do rozdziału 7...............................................................................................................339
Dodatek B Pełny proces..............................................................................................343
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
Dodatek C Słownik .....................................................................................................355
Skorowidz .....................................................................................................................367
Tworzenie diagramów
i optymalizacja
złożonych zapytań SQL
Tworzenie diagramów i optymalizacja złożonych zapytań SQL Jak dotąd, nauczyliśmy
się optymalizować zapytania na rzeczywistych tabelach oraz tworzyć dla nich diagramy,
które spełniają różne wymagania odnoszące się do normalnych zapytań biznesowych:
Zapytanie przedstawione jest na jednym drzewie.
Drzewo ma jedno źródło, dokładnie jedną tabelę bez złączeń z jej kluczami
głównymi. Wszystkie węzły, inne niż węzeł źródłowy, mają pojedyncze,
skierowane ku nim połączenia ze znajdującymi się powyżej węzłami
szczegółowymi, ale każdy węzeł może być na szczycie dowolnej ilości
skierowanych ku dołowi połączeń.
Wszystkie złączenia mają skierowane ku dołowi strzałki
(złączenia, które są unikalne na jednym z końców).
Złączenia zewnętrzne są niefiltrowane, skierowane ku dołowi, kolejne złączenia
znajdujące się poniżej są także zewnętrzne.
Pytanie, na które zapytanie SQL udziela nam odpowiedzi jest w gruncie rzeczy
pytaniem o encję znajdującą się na samej górze (źródło) drzewa lub odnośnie
agregacji tej encji.
Pozostałe tabele dostarczają jedynie referencyjnych danych, umieszczonych
w określonej strukturze jedynie przez wzgląd na normalizację.
Nazwałem zapytania spełniające powyższe warunki
zapytaniami prostymi,
chociaż jak
mogliśmy się przekonać w rozdziale 6., mogą one zawierać dowolną ilość złączeń, a ich
optymalizacja może być całkiem trudna, zwłaszcza w rzadkich przypadkach węzłów
o podobnych współczynnikach filtrowania lub kiedy istnieje ukryte filtrowanie złączeń.
Zgłoś jeśli naruszono regulamin