Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning.

Ähnliche Präsentationen


Präsentation zum Thema: "Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning."—  Präsentation transkript:

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


Herunterladen ppt "Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning."

Ähnliche Präsentationen


Google-Anzeigen