Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning.

25
Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle „Tuning“

Transcript of Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning.

Page 1: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning.

Vorlesung Datenbanksysteme vom 20.10.2004Anfragebearbeitung

Kostenmodelle„Tuning“

Page 2: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning.

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.

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.

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.

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.

6

Page 7: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning.

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.

8

Page 9: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning.

9

Abschätzung für einfache Fälle

Page 10: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning.

10

Parametrisierte Verteilung

Histogramm

Page 11: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning.

11

Page 12: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning.

12

I/O-Kosten: Block Nested Loop Join

Page 13: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning.

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.

14

Analysieren von Leistungsengpässen

Geschätzte Kosten von

Oracle

Page 15: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning.

15

Baumdarstellung

Page 16: Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle Tuning.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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