Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung

25
Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung Kostenmodelle „Tuning“

description

Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung. Kostenmodelle „Tuning“. Architektur eines DBMS. Interactive Abfrage. API/Präcompiler. Verwaltungswerkzeug. DML-Compiler. DDL-Compiler. Abfrageoptimierung. Schemaverwaltung. Datenbankmanager. Mehrbenutzersynchronisation. - PowerPoint PPT Presentation

Transcript of Vorlesung Datenbanksysteme vom 20.10.2004 Anfragebearbeitung

Vorlesung Datenbanksysteme vom 20.10.2004Anfragebearbeitung

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

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

4

s

h

v

p

As.MatrNr=h.MatrNr

Ap.PersNr=v.gelesenVon

s.Semester

p.Name = ´Sokrates´

Av.VorlNr=h.VorlNr

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

6

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

8

9

Abschätzung für einfache Fälle

10

Parametrisierte Verteilung

Histogramm

11

12

I/O-Kosten: Block Nested Loop Join

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 …

14

Analysieren von Leistungsengpässen

Geschätzte Kosten von

Oracle

15

Baumdarstellung

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

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

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]

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.

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

21

DP - Beispiel

Index Pläne

{ABC}

{BC}

{AC}

{AB}

{C}

{B}

{A}

1. Phase: Zugriffspläne ermitteln

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

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)

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

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