SQL_Optymalizacja_sqlopt.pdf

(1385 KB) Pobierz
IDZ DO
PRZYK£ADOW Y ROZDZIA£
SQL. Optymalizacja
SPIS TRECI
KATALOG KSI¥¯EK
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 ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
Instrukcje SQL s¹ kluczowymi elementami typowych aplikacji bazodanowych, a wiêc
efektywnoæ ich wykonywania decyduje w g³ównym stopniu o wydajnoci 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 powiêcona jest jednemu z kluczowych aspektów tego zwi¹zku, czêsto
niedocenianemu, aczkolwiek niezmiernie istotnemu — wyborowi odpowiedniego planu
wykorzystywanego przez okrelone 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 okrelonych 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ólnoci, miêdzy innymi takich jak:
• Buforowanie danych i zarz¹dzanie tabelami
• Indeksowanie, implementowanie indeksów i zwi¹zane z tym koszty
• Filtrowanie zawartoci 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.
Treci poszczególnych rozdzia³ów towarzysz¹ æwiczenia kontrolne, a ca³oæ wieñczy
prezentacja zastosowania opisywanych koncepcji w (kompletnie opisanym) procesie
optymalizowania konkretnej aplikacji.
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOCIACH
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
1099020162.015.png 1099020162.016.png 1099020162.017.png 1099020162.018.png 1099020162.001.png 1099020162.002.png 1099020162.003.png 1099020162.004.png 1099020162.005.png 1099020162.006.png 1099020162.007.png 1099020162.008.png 1099020162.009.png 1099020162.010.png 1099020162.011.png 1099020162.012.png 1099020162.013.png
 
Spis treci
Przedmowa .......................................................................................................................9
Wstp ...............................................................................................................................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 rozwizania..............................................................................................................................24
Rozdział 2. Podstawowe informacje o dostpie do danych..................................25
Buforowanie danych .............................................................................................................................26
Tabele.......................................................................................................................................................29
Indeksy....................................................................................................................................................32
Rzadziej wykorzystywane obiekty baz danych................................................................................36
2cie"ki dostpu do pojedynczych tabel .............................................................................................40
Wyznaczanie selektywno4ci.................................................................................................................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 treci
Rozdział 4. Zarz"dzanie planami wykonania zapyta% .......................................101
Uniwersalne techniki zarzdzania planem wykonania zapytania..............................................101
Zarzdzanie planami wykonania zapyta= w bazach danych Oracle..........................................114
Zarzdzanie planami wykonania zapyta= w bazach danych DB2..............................................130
Zarzdzanie 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 kolejno4 złczania.............................................................................176
Proste przykłady..................................................................................................................................177
Szczególny przypadek........................................................................................................................187
Skomplikowany przykład..................................................................................................................190
Specjalne zasady postpowania 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 przemawiajce za zagnie"d"onymi ptlami..............................................................281
Wybieranie tabeli Bródłowej..............................................................................................................283
Wybieranie kolejnej tabeli złczenia.................................................................................................287
Podsumowanie.....................................................................................................................................291
Rozdział 9. Przypadki szczególne ............................................................................293
Złczenia zewntrzne..........................................................................................................................293
Złczenie scalajce i indeksy filtrów.................................................................................................299
Brakujce indeksy................................................................................................................................302
Spis treci
7
Złczenia bez filtrów...........................................................................................................................303
Problemy bez rozwizania.................................................................................................................304
Rozdział 10. Rozwi"zania dla pozornie nierozwi"zywalnych problemów .....307
Gdy bardzo szybko jest zbyt wolno .................................................................................................307
Zapytania zwracajce dane ze zbyt wielu wierszy........................................................................312
Zoptymalizowane zapytanie wolno zwracajce jedynie kilka wierszy......................................324
Dodatek A Rozwi"zania 4wicze%.............................................................................329
Rozwizania do rozdziału 5...............................................................................................................329
Rozwizania do rozdziału 6...............................................................................................................333
Rozwizania do rozdziału 7...............................................................................................................339
Dodatek B Pełny proces..............................................................................................343
Uproszczenie zapytania do postaci diagramu................................................................................343
Rozwizywanie 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łoonych zapyta SQL
Tworzenie diagramów i optymalizacja złoonych zapyta SQL Jak dotd, nauczyli!my
si# optymalizowa$ zapytania na rzeczywistych tabelach oraz tworzy$ dla nich diagramy,
które spełniaj róne wymagania odnoszce 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 znajdujcymi si# powyej w#złami
szczegółowymi, ale kady w#zeł moe 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 koców).
Złczenia zewn#trzne s niefiltrowane, skierowane ku dołowi, kolejne złczenia
znajdujce si# poniej s take zewn#trzne.
Pytanie, na które zapytanie SQL udziela nam odpowiedzi jest w gruncie rzeczy
pytaniem o encj# znajdujc 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 wzgld na normalizacj#.
Nazwałem zapytania spełniajce powysze warunki zapytaniami prostymi , chocia jak
mogli!my si# przekona$ w rozdziale 6., mog one zawiera$ dowoln ilo!$ złcze, a ich
optymalizacja moe by$ całkiem trudna, zwłaszcza w rzadkich przypadkach w#złów
o podobnych współczynnikach filtrowania lub kiedy istnieje ukryte filtrowanie złcze.
1099020162.014.png
Zgłoś jeśli naruszono regulamin