vorlesung datenbanksysteme vom 20.10.2004 anfragebearbeitung kostenmodelle tuning
Post on 05-Apr-2015
107 Views
Preview:
TRANSCRIPT
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
top related