Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Meta Dreckman Geändert vor über 10 Jahren
1
Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning
2
2 Architektur eines DBMS DML-CompilerDDL-Compiler Abfrageoptimierung Datenbankmanager Schemaverwaltung Dateiverwaltung LogdateienIndexeDatenbasisData Dictionary Mehrbenutzersynchronisation Fehlerbehandlung Interactive AbfrageAPI/PräcompilerVerwaltungswerkzeug
3
3 Wiederholung der Optimierungsphasen select 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 sh v p p.Name = ´Sokrates´ and... s.Semester
4
4 s h v p A s.MatrNr=h.MatrNr A p.PersNr=v.gelesenVon s.Semester p.Name = ´Sokrates´ A v.VorlNr=h.VorlNr
5
5 Kostenbasierte Optimierung Generiere alle denkbaren Anfrageauswertungspläne Enumeration Bewerte deren Kosten Kostenmodell Statistiken Histogramme Kalibrierung gemäß verwendetem Rechner Abhängig vom verfügbaren Speicher Aufwands-Kostenmodell Durchsatz-maximierend Nicht Antwortzeit-minimierend Behalte den billigsten Plan
6
6
7
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) / #Roder 1/i abgeschätzt werden. Selektivität
8
8
9
9 Abschätzung für einfache Fälle
10
10 Parametrisierte Verteilung Histogramm
11
11
12
12 I/O-Kosten: Block Nested Loop Join
13
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 verlassen Anstatt compute verwendet man estimate In DB2 … runstats on table …
14
14 Analysieren von Leistungsengpässen Geschätzte Kosten von Oracle
15
15 Baumdarstellung
16
16 Beispiel Anfrage SELECT* FROMA, B, C WHERE A.a = B.a AND B.b = C.a ; Blätter Tabellen innere Knoten Operatoren Annotation Ausführungsorte ship client IdxNLJ 1 idxscan 3 fscan 2 fscan 1 A1A1 C3C3 B2B2 HashJ 1 Auswertungsplan
17
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 Improvement Simulated Annealing
18
18 Problemgröße Suchraum (Planstruktur) 1.# Bushy-Pläne mit n Tabellen [Ganguly et al. 1992]: nenen (2(n-1))!/(n-1)! 272 51461680 10220261,76*10 10 204,85 * 10 9 4,3*10 27 (2(n-1))! (n-1)! 2. Plankosten unterscheiden sich um Größenordnungen 3. Optimierungsproblem ist NP-hart [Ibaraki 1984]
19
19 Dynamische Programmierung II Identifikation von 3 Phasen 1.Access Root - Phase: Aufzählen der Zugriffspläne 2.Join Root - Phase: Aufzählen der Join-Kombinationen 3.Finish Root - Phase: sort, group-by, etc.
20
20 Optimierung durch Dynamische Programmierung Standardverfahren in heutigen relationalen Datenbanksystemen Voraussetzung ist ein Kostenmodell als Zielfunktion I/O-Kosten CPU-Kosten DP basiert auf dem Optimalitätskriterium von Bellman Literatur zu DP: D. Kossmann und K. Stocker: Iterative Dynamic Programming, TODS, 2000 OS-O Optimaler Subplan Optimaler Subplan
21
21 DP - Beispiel IndexPläne {ABC} {BC} {AC} {AB} {C} {B} {A} 1. Phase: Zugriffspläne ermitteln
22
22 DP - Beispiel IndexPläne {ABC} {BC} {AC} {AB} {C}scan(C) {B}scan(B), iscan(B) {A}scan(A) 1. Phase: Zugriffspläne ermitteln
23
23 DP - Beispiel IndexPlä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)
24
24 DP - Beispiel IndexPlä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
25
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
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.