vorlesung datenbanksysteme vom 20.10.2004 anfragebearbeitung kostenmodelle tuning
TRANSCRIPT
![Page 1: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning](https://reader035.vdocuments.mx/reader035/viewer/2022081516/55204d7349795902118c6a13/html5/thumbnails/1.jpg)
Vorlesung Datenbanksysteme vom 20.10.2004Anfragebearbeitung
Kostenmodelle„Tuning“
![Page 2: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning](https://reader035.vdocuments.mx/reader035/viewer/2022081516/55204d7349795902118c6a13/html5/thumbnails/2.jpg)
2
Architektur eines DBMS
DML-Compiler DDL-Compiler
Abfrageoptimierung
Datenbankmanager
Schemaverwaltung
Dateiverwaltung
Logdateien Indexe Datenbasis Data Dictionary
Mehrbenutzersynchronisation
Fehlerbehandlung
Interactive Abfrage API/Präcompiler Verwaltungswerkzeug
![Page 3: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning](https://reader035.vdocuments.mx/reader035/viewer/2022081516/55204d7349795902118c6a13/html5/thumbnails/3.jpg)
3
Wiederholung der Optimierungsphasenselect distinct s.Semester
from Studenten s, hören h
Vorlesungen v, Professoren p
where p.Name = ´Sokrates´ and
v.gelesenVon = p.PersNr and
v.VorlNr = h.VorlNr and
h.MatrNr = s.MatrNr
s h
v
p
p.Name = ´Sokrates´ and ...
s.Semester
![Page 4: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning](https://reader035.vdocuments.mx/reader035/viewer/2022081516/55204d7349795902118c6a13/html5/thumbnails/4.jpg)
4
s
h
v
p
As.MatrNr=h.MatrNr
Ap.PersNr=v.gelesenVon
s.Semester
p.Name = ´Sokrates´
Av.VorlNr=h.VorlNr
![Page 5: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning](https://reader035.vdocuments.mx/reader035/viewer/2022081516/55204d7349795902118c6a13/html5/thumbnails/5.jpg)
5
Kostenbasierte Optimierung Generiere alle denkbaren Anfrageauswertungspläne
Enumeration Bewerte deren Kosten
KostenmodellStatistikenHistogrammeKalibrierung gemäß verwendetem RechnerAbhängig vom verfügbaren SpeicherAufwands-Kostenmodell
Durchsatz-maximierendNicht Antwortzeit-minimierend
Behalte den billigsten Plan
![Page 6: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning](https://reader035.vdocuments.mx/reader035/viewer/2022081516/55204d7349795902118c6a13/html5/thumbnails/6.jpg)
6
![Page 7: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning](https://reader035.vdocuments.mx/reader035/viewer/2022081516/55204d7349795902118c6a13/html5/thumbnails/7.jpg)
7
Sind verschiedene Strategien anwendbar, so benötigt man zur Auswahl eine Kostenfunktion. Sie basiert auf dem Begriff der Selektivität.
Die Selektivität eines Suchprädikats schätzt die Anzahl der qualifizierenden Tupel relativ zur Gesamtanzahl der Tupel in der Relation.
Beispiele:die Selektivität einer Anfrage, die das
Schlüsselattribut einer Relation R spezifiziert, ist 1/ #R, wobei #R die Kardinalität der Relation R angibt.
Wenn ein Attribut A spezifiziert wird, für das i verschiedene Werte existieren, so kann die Selektivität als
(#R/i) / #R oder 1/iabgeschätzt werden.
Selektivität
![Page 8: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning](https://reader035.vdocuments.mx/reader035/viewer/2022081516/55204d7349795902118c6a13/html5/thumbnails/8.jpg)
8
![Page 9: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning](https://reader035.vdocuments.mx/reader035/viewer/2022081516/55204d7349795902118c6a13/html5/thumbnails/9.jpg)
9
Abschätzung für einfache Fälle
![Page 10: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning](https://reader035.vdocuments.mx/reader035/viewer/2022081516/55204d7349795902118c6a13/html5/thumbnails/10.jpg)
10
Parametrisierte Verteilung
Histogramm
![Page 11: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning](https://reader035.vdocuments.mx/reader035/viewer/2022081516/55204d7349795902118c6a13/html5/thumbnails/11.jpg)
11
![Page 12: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning](https://reader035.vdocuments.mx/reader035/viewer/2022081516/55204d7349795902118c6a13/html5/thumbnails/12.jpg)
12
I/O-Kosten: Block Nested Loop Join
![Page 13: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning](https://reader035.vdocuments.mx/reader035/viewer/2022081516/55204d7349795902118c6a13/html5/thumbnails/13.jpg)
13
Tuning von Datenbanken Statistiken (Histogramme, etc.) müssen explizit
angelegt werden Anderenfalls liefern die Kostenmodelle falsche Werte In Oracle …
analyze table Professoren compute statistics for table;
Man kann sich auch auf approximative Statistiken verlassenAnstatt compute verwendet man estimate
In DB2 … runstats on table …
![Page 14: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning](https://reader035.vdocuments.mx/reader035/viewer/2022081516/55204d7349795902118c6a13/html5/thumbnails/14.jpg)
14
Analysieren von Leistungsengpässen
Geschätzte Kosten von
Oracle
![Page 15: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning](https://reader035.vdocuments.mx/reader035/viewer/2022081516/55204d7349795902118c6a13/html5/thumbnails/15.jpg)
15
Baumdarstellung
![Page 16: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning](https://reader035.vdocuments.mx/reader035/viewer/2022081516/55204d7349795902118c6a13/html5/thumbnails/16.jpg)
16
Beispiel
Anfrage
SELECT *FROM A, B, CWHERE A.a = B.a AND
B.b = C.a ;
• Blätter Tabellen• innere Knoten Operatoren• Annotation Ausführungsorte
shipclient
IdxNLJ1
idxscan3
fscan2fscan1
A1
C3
B2
HashJ1
Auswertungsplan
![Page 17: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning](https://reader035.vdocuments.mx/reader035/viewer/2022081516/55204d7349795902118c6a13/html5/thumbnails/17.jpg)
17
Algorithmen - Ansätze Erschöpfende Suche
Dynamische Programmierung (System R)A* Suche
Heuristiken (Planbewertung nötig)Minimum Selectivity, Intermediate Result,...KBZ-Algorithmus, AB-Algorithmus
Randomisierte Algorithmen Iterative ImprovementSimulated Annealing
![Page 18: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning](https://reader035.vdocuments.mx/reader035/viewer/2022081516/55204d7349795902118c6a13/html5/thumbnails/18.jpg)
18
ProblemgrößeSuchraum (Planstruktur)1. # Bushy-Pläne mit n Tabellen [Ganguly et al. 1992]:
n en (2(n-1))!/(n-1)!
2 7 2
5 146 1680
10 22026 1,76*1010
20 4,85 * 109 4,3*1027
(2(n-1))!
(n-1)!
2. Plankosten unterscheiden sich um Größenordnungen3. Optimierungsproblem ist NP-hart [Ibaraki 1984]
![Page 19: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning](https://reader035.vdocuments.mx/reader035/viewer/2022081516/55204d7349795902118c6a13/html5/thumbnails/19.jpg)
19
Dynamische Programmierung II
Identifikation von 3 Phasen1. Access Root - Phase: Aufzählen der Zugriffspläne2. Join Root - Phase: Aufzählen der Join-Kombinationen3. Finish Root - Phase: sort, group-by, etc.
![Page 20: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning](https://reader035.vdocuments.mx/reader035/viewer/2022081516/55204d7349795902118c6a13/html5/thumbnails/20.jpg)
20
Optimierung durch Dynamische Programmierung
Standardverfahren in heutigen relationalen Datenbanksystemen
Voraussetzung ist ein Kostenmodell als Zielfunktion
I/O-KostenCPU-Kosten
DP basiert auf dem Optimalitätskriterium von Bellman
Literatur zu DP: D. Kossmann und K. Stocker: Iterative Dynamic
Programming, TODS, 2000
O S-O
OptimalerSubplan
OptimalerSubplan
![Page 21: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning](https://reader035.vdocuments.mx/reader035/viewer/2022081516/55204d7349795902118c6a13/html5/thumbnails/21.jpg)
21
DP - Beispiel
Index Pläne
{ABC}
{BC}
{AC}
{AB}
{C}
{B}
{A}
1. Phase: Zugriffspläne ermitteln
![Page 22: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning](https://reader035.vdocuments.mx/reader035/viewer/2022081516/55204d7349795902118c6a13/html5/thumbnails/22.jpg)
22
DP - Beispiel
Index Pläne
{ABC}
{BC}
{AC}
{AB}
{C} scan(C)
{B} scan(B), iscan(B)
{A} scan(A)
1. Phase: Zugriffspläne ermitteln
![Page 23: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning](https://reader035.vdocuments.mx/reader035/viewer/2022081516/55204d7349795902118c6a13/html5/thumbnails/23.jpg)
23
DP - Beispiel
Index Pläne
{ABC}
{BC} ...{AC} s(A) A s(C), s(C) A s(A){AB} s(A) A s(B), s(A) A is(B), is(B) A
s(A),... {C} scan(C){B} scan(B), iscan(B){A} scan(A)
Pruning
2. Phase: Join-Pläne ermitteln (2-fach,...,n-fach)
![Page 24: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning](https://reader035.vdocuments.mx/reader035/viewer/2022081516/55204d7349795902118c6a13/html5/thumbnails/24.jpg)
24
DP - Beispiel
Index
Pläne
{ABC}
(is(B) A s(A)) A s(C)
{BC} ...{AC} s(A) A s(C){AB} s(A) A is(B), is(B) A s(A) {C} scan(C){B} scan(B), iscan(B){A} scan(A)
3. Phase: Finalisierung
![Page 25: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning](https://reader035.vdocuments.mx/reader035/viewer/2022081516/55204d7349795902118c6a13/html5/thumbnails/25.jpg)
25
Enumeration Effiziente Enumeration [Vance 96]
anstatt zunächst alle 2-elem, 3-elem, ..., n-elem Pläne sequentiell zu enumerieren: effizientes Interleaving
nur Pläne aus bereits berechneten Zeilen notwendig Beispiel:
1. A 2. B 3. AB 4. C 5. AC 6. BC 7. ABC