Kapitel 11

Werbung
Kapitel 11
Dr. Brigitte Mathiak
Anfragebearbeitung
Lernziele

• Relationenalgebra
• Ablauf der Anfrageoptimierung
• Logische Optimierung
• Umwandlung von SQL in Relationenalgebra
• Heuristische Optimierung
• Physische Optimierung
• Unterschiedliche JOIN Algorithmen
• Kostenbasierte Optimierung
Datenbanken für Mathematiker, WS 11/12
Kapitel 11: Anfragebearbeitung
2
Optimierung von Datenbank- Anfragen: Grundsätze
Sehr hohes Abstraktionsniveau der mengenorientierten Schnittstelle
(SQL).
Sie ist deklarativ, nicht-prozedural, d.h. es wird spezifiziert, was man
finden möchte, aber nicht wie.
Das wie bestimmt sich aus der Abbildung der mengenorientierten
Operatoren auf Schnittstellen-Operatoren der internen Ebene (Zugriff
auf Datensätze in Dateien, Einfügen/Entfernen interner Datensätze,
Modifizieren interner Datensätze).
Zu einem was kann es zahlreiche wie‘s geben: effiziente
Anfrageauswertung durch Anfrageoptimierung.
i.A. wird aber nicht die optimale Auswertungsstrategie gesucht (bzw.
gefunden) sondern eine einigermaßen effiziente Variante
 Ziel: „avoiding the worst case“
Datenbanken für Mathematiker, WS 11/12
Kapitel 11: Anfragebearbeitung
3
Ablauf der Anfrageoptimierung
Deklarative
Anfrage
Scanner
Parser
Sichtenauflösung
Algebraischer
Ausdruck
AnfrageOptimierer
AuswertungsPlan (QEP)
Codeerzeugung
Ausführung
Datenbanken für Mathematiker, WS 11/12
Kapitel 11: Anfragebearbeitung
4

Relationenmodell revisited: Grundbegriffe
DB: Relationen
(tables)
Professoren
Pers
Nr
Name
Ran
g
Rau
m
2125
Sokrates
C4
226
2126
Russel
C4
232
2127
Kopernik
us
C3
310
2133
Popper
C3
52
2134
Augustin
us
C3
309
2136
Curie
C4
36
2137
Kant
C4
prüfen
7
Ausprägung
 dom (PersNr) 
dom (Name)  ...
dom (Raum)
Schema
Matr
Nr
VorlNr
Pers
Nr
Note
28106
5001
2126
1
25403
5041
2125
2
Attribut (Column)
Tupel (Record, Row)
Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra
5
Relationenmodell revisited: Definitionen
Gegeben sei eine Menge von Wertebereichen
primitiver Datentypen {D1, ..., Dm}, die als "Domains"
bezeichnet werden.
Eine Relation R ist ein Paar R = (s,v) mit
• einem Schema s = sch(R) = {A1, ..., An}, das aus einer Menge von
Attributen (Attributnamen) besteht und für jedes Attribut Ai
einen Domain dom(Ai)  {D1, ..., Dm} festlegt, und
• einer Ausprägung
v = val(R)  dom(A1)  dom(A2)  ...  dom(An).
Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra
6
Relationenalgebra (RA): Operationen
Eine Operation der RA hat eine oder mehrere Relationen
als Operanden und liefert eine Relation als Ergebnis
(Abgeschlossenheit der Algebra)
Operationen in RA:





Mengenoperationen (Vereinigung, Durchschnitt, …)
Zuweisung / Umbenennung
Selektion, Projektion
Joins
Division
Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra
7
Mengenoperationen
Für zwei Relationen R, S mit sch(R) = sch(S)
sind die üblichen Mengenoperationen definiert:
• Vereinigung (Union) R  S:
• Durchschnitt (Intersection) R  S:
• Differenz (Difference) R  S:
Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra
8
Zuweisung
Idee:
Umbenennung von Relationen und/oder einzelnen Attributen
Seien R, S Relationen mit
sch(R) = { A1, ..., An } und sch(S) = { B1, ..., Bn },
so dass für alle i gilt: dom(Ai) = dom(Bi).
Die Zuweisung R := S bedeutet: val(R) = val(S).
Ausführlicher schreibt man auch R(A1, ..., An) := S(B1, ..., Bn).
Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra
9
Umbenennung
Vereinfachte Form der Zuweisung:
explizite Umbenennung von einzelnen Attributen oder Relationen
• Umbennung von einzelnen Attributen
 [Voraussetzung  Vorgänger] (voraussetzen)
(.. Attribut "Vorgänger" wird in "Voraussetzung" umbenannt)
• Umbenennung von Relationen
 [V1] (voraussetzen)
(.. Relation "voraussetzen" wird in "V1" umbenannt)
Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra
10
Selektion
Selektion  (Filterung, Auswahl von Zeilen einer Tabelle):
Das Resultat einer Selektion [F](R) auf einer Relation R ist:
Die Menge der möglichen Filterformeln F ist:
1) Für Attribute A, B aus sch(R) mit dom(A) = dom(B),
Konstante c  dom(A) und Vergleichsoperationen   {=, , , , , }
sind A  B und A  c zulässige Filterbedingungen.
2) Falls F1 und F2 zulässige Filterbedingungen sind, dann sind auch
F1  F2, F1  F2,  F1 und (F1) zulässig.
3) Nur die von 1) und 2) erzeugten Filterbedingungen sind zulässig.
Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra
11
Projektion
Projektion  (Auswahl von Spalten einer Tabelle):
Sei A  sch(R). Das Resultat einer Projektion [A](R) ist:
Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra
12
Selektion vs. Projektion
Projektion
Selektion
Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra
13
Selektion / Projektion: Beispiel
Studenten
Selektion:
 [Semester > 10] (Studenten)
MatrNr
24002
25403
Name
Xenokrates
Jonas
Semester
18
12
Projektion:
 [Rang] (Professoren)
Rang
C3
C4
Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra
MatrNr
Name
Semester
24002
Xenokrates
18
25403
Jonas
12
26120
Fichte
10
26830
Aristoxenos
8
27550 Schopenhauer
6
28106
3
Carnap
29120 Theophrastos
2
29555
2
Feuerbach
Professoren
PersNr
Name
2125
Sokrates
C4
226
2126
Russel
C4
232
2127 Kopernikus C3
310
2133
C3
52
2134 Augustinus C3
309
2136
Curie
C4
36
2137
Kant
C4
7
Popper
Rang Raum
14
Beispiel: Selektion/Projektion mit Umbenennung
Professoren
Anfrage:
PersNr
Name
2125
Sokrates
C4
2126
Russel
Vorlesungen
Rang Raum
SWS gelesenVon
VorlNr
Titel
226
5001
Grundzüge
4
2137
C4
232
5041
Ethik
4
2125
2127 Kopernikus C3
310
5043
Erkenntnistheorie
3
2126
2133
C3
52
5049
Mäeutik
2
2125
2134 Augustinus C3
309
4052
Logik
4
2125
2136
Curie
C4
36
5052
Wissenschaftstheorie
3
2126
2137
Kant
C4
7
5216
Bioethik
2
2126
5259
Der Wiener Kreis
2
2133
5022
Glaube und Wissen
2
2134
4630
Die 3 Kritiken
4
2137
Popper
PersNr aller C4-Professoren, die
mindestens eine Vorlesung halten.
Mengendurchschnitt nur auf zwei Argumentrelationen mit gleichem Schema
anwendbar. Deshalb ist die Umbenennung des Attributes gelesenVon in
PersNr in der Relation Vorlesungen notwendig.
Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra
15
Natural Join
Natural Join: ||
Natürlicher Verbund von Relationen
über gleiche Attributnamen und Attributwerte.
Das Resultat von R || S mit A = sch(R) und B = sch(S) ist:
P (X1, ..., Xm, Y1, ..., Yk)
Q (Y1,..., Yk, Z1, ..., Zn)
P |×| Q
X1
PQ
X2 ...
Xm
Y1
PQ
Y2
...
Yk
Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra
Z1
QP
Z2 ...
Zn
16
Natural Join: Beispiel
Studenten
hören
MatrNr
Name
Semester
MatrNr
VorlNr
24002
Xenokrates
18
24002
5001
25403
Jonas
12
25403
5001
26120
Fichte
2
24002
4052
26830
Aristoxenos
8
24002
5041
1
26830
5052
27550 Schopenhauer

||
MatrNr
Name
Semester
VorlNr
24002
Xenokrates
18
5001
24002
Xenokrates
18
4052
24002
Xenokrates
18
5041
25403
Jonas
12
5001
26830
Aristoxenos
8
5052
Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra
17
Kartesisches Produkt
Kartesisches Produkt: 
Seien R, S Relationen mit Schemata A = sch(R) und B = sch(S).
Sei A' ein Schema, bei dem alle Ai, die auch in B vorkommen,
unbenannt sind in R.Ai, und sei B' ein analoges Schema
mit Attributnamen S.Ai.
Das Resultat von R  S ist:
P (X1,..., Xm, Y1,..., Yk)
Q (Y1,..., Yk, Z1,..., Zn)
P×Q
X1
X2
...
Xm P.Y P.Y
1
2
…
P.Y
k
Q.
Y1
Q.
Y2
Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra
…
Q.
Yk
Z1
Z2
...
Zn
18
Kartesisches Produkt: Beispiel
Professoren
PersNr
Name
2125
Sokrates
C4
2126
Russel
hören
Rang Raum
MatrNr
VorlNr
226
26120
5001
C4
232
27550
5001
2127 Kopernikus C3
310
27550
4052
2133
C3
52
28106
5041
2134 Augustinus C3
309
28106
5052
2136
Curie
C4
36
28106
5216
2137
Kant
C4
7
...
...
Popper
×
sch(Professoren)
PersNr
2125
...
2125
...
2137
Name
Sokrates
...
Sokrates
...
Kant
sch(hören)
Rang
C4
...
C4
...
C4
Raum
226
...
226
...
7
MatrNr
26120
...
29555
...
29555
VorlNr
5001
...
5001
...
5001
Problem: potentiell riesige Zwischenergebnisse
Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra
19
Äquivalenzregeln ("Rechenregeln") der RA
Kommutativitätsregeln:
1)
2)
falls P nur R1-Attribute enthält
Assoziativitätsregel:
3)
Idempotenzregeln:
4)
5)
Distributivitätsregeln:
6)
7)
8)
9)
10)
falls P nur R-Attribute enthält
falls Joinattribute
 R1 S1
Invertierungsregel:
11)
Grundlagen der Datenbanken, WS 08/09
Kapitel 5: Relationale Algebra
20
Ausdrucksmächtigkeit der RA
Die Menge der relationenalgebraischen Ausdrücke
über einer Menge von Relationen P1, ..., Pn ist wie folgt definiert:
(i) P1, ..., Pn sind Ausdrücke.
(ii) Wenn R, S, T, Q Ausdrücke sind, F eine Filterformel über sch(P) ist,
A  sch(R), sch(S)=sch(T) und sch(R)  sch(Q) gilt, dann sind
[F](R), [A](R), R |×| S, R × S, R |*| S, S  T, S  T, S - T, R  Q
auch Ausdrücke.
(iii) Nur die von (i) und (ii) erzeugten Ausdrücke sind RA-Ausdrücke.
Satz:
, , , , –,  bilden eine minimale Menge von Operationen,
mit denen sich alle Operationen der RA ausdrücken lassen.
Eine Anfragesprache heißt relational vollständig, wenn sich damit alle
Anfragen der (minimalen) Relationenalgebra ausdrücken lassen.
Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra
21
Eigenschaften der Relationenalgebra (1/2)

Satz: Alle Ergebnismengen von Operationen der
relationalen Algebra sind endlich.
Beweisskizze:
Man zeige für alle Operationen ×, , , , – und , dass für endliche
Eingaberelationen und beliebige Filterformeln das Ergebnis auch
endlich ist.
Beispiel:
R × S: Sei die Anzahl der Tupel in R: r = |val(R)| und in S:
s=|val(S)|. Dann ist sowohl r als auch s endlich (s. oben). Die Anzahl der
Tupel in R × S: rxs = |val(R × S)| kann bestimmt werden als rxs ≤ r*s, da
für jedes Element in val(R) höchstens s Ausprägungen in R × S entstehen
können. rxs ist also endlich. □
Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra
22
Eigenschaften der Relationenalgebra (2/2)

• Mit ähnlichem Beweisschema gilt auch:
•
Die Größe der Ergebnismenge von Operationen der
relationalen Algebra kann sicher nach oben abgeschätzt
werden, wenn die Größe der Eingaberelationen bekannt ist
•
Die Laufzeit zur Auswertung eines Ausdrucks der
Relationenalgebra kann sicher nach oben abgeschätzt
werden, wenn sowohl die Größe der Eingaberelationen bekannt ist als
auch die nach oben abgeschätzte Laufzeit des
Berechnungsalgorithmen der eingesetzten Einzeloperationen
Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra
23
Offene Fragen:

• Kann SQL die Relationenalgebra abbilden?
•
JA, SQL ist relational vollständig
• Kann die Relationenalgebra SQL abbilden?
•
•
•
JEIN
Es kommt auf den Dialekt an.
Was bei den meisten fehlt sind
•
•
•
•
•
Multimengen,
Aggregationen,
Gruppierung und
transitive Hülle
Diese können allerdings mit geringem Zusatzaufwand
eingefügt werden
Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra
24
Logische Optimierung
1. Übersetzen der SQL-Anfrage in die Relationenalgebra
2. Äquivalentes Umformen der RA um die Anfragebearbeitung zu
beschleunigen
Datenbanken für Mathematiker, WS 11/12
Kapitel 11: Anfragebearbeitung
25
Allgemeingültige Übersetzung
SELECT A1, ..., An
FROM R1, ..., Rk
WHERE P
Rk
R3
R1
Datenbanken für Mathematiker, WS 11/12
R2
Kapitel 11: Anfragebearbeitung
26
Allgemeingültige Übersetzung (Beispiel)
SELECT Titel
FROM Professoren, Vorlesungen
WHERE Name = ´Popper´ AND
PersNr = gelesenVon
Professoren
Vorlesungen
Problem:
Professoren Vorlesung hat ist ein sehr großes
Zwischenergebnise
Datenbanken für Mathematiker, WS 11/12
Kapitel 11: Anfragebearbeitung
27
Erste Optimierungsidee
SELECT Titel
FROM Professoren, Vorlesungen
WHERE Name = ´Popper´ AND
PersNr = gelesenVon
Vorlesungen
Professoren
Das Zwischenergebnis ist nun deutlich kleiner.
Datenbanken für Mathematiker, WS 11/12
Kapitel 11: Anfragebearbeitung
28
Zur Erinnerung: Äquivalenzregeln der RA
Kommutativitätsregeln:
1)
2)
falls P nur R1-Attribute enthält
Assoziativitätsregel:
3)
Idempotenzregeln:
4)
5)
Distributivitätsregeln:
6)
7)
8)
9)
10)
falls P nur R-Attribute enthält
falls Joinattribute
 R1 S1
Invertierungsregel:
11)
Datenbanken für Mathematiker, WS 11/12
Kapitel 11: Anfragebearbeitung
29
Heuristische Anwendung der Transformationsregeln
1. Mittels Regel 1 werden konjunktive Selektionsprädikate in
Kaskaden von -Operationen zerlegt.
Selektion nach unten
2. Mittels Regeln 2, 4, 6, und 9 werden Selektionsoperationen
soweit "nach unten" propagiert wie möglich.
3. Mittels Regel 8 werden die Blattknoten
so vertauscht, dass
Kleine Zwischenergebnisse
derjenige, der das kleinste Zwischenergebnis liefert, zuerst
ausgewertet wird.
Join als Kartesisch
4. Forme eine  -Operation, die von Besser
einer -Operation
gefolgt
wird, wenn möglich in eine Join-Operation um
5. Mittels Regeln 3, 4, 7, und 10 werden Projektionen soweit wie
möglich nach unten propagiert. Projektionen nach unten
(jedoch über die Selektionen)
6. Versuche Operationsfolgen zusammenzufassen,
wenn sie in
einem Durchlauf ausführbar sind
(z.B. Anwendung von Regel 1, Regel 3, aber auch
Zusammenfassung aufeinanderfolgender Selektionen und
Operationen zusammenfassen
Projektionen zu einer Filter-Operation).
Datenbanken für Mathematiker, WS 11/12
Kapitel 11: Anfragebearbeitung
30
Anwendung der Transformationsregeln
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
p
v
s
Datenbanken für Mathematiker, WS 11/12
h
Kapitel 11: Anfragebearbeitung
31
Aufspalten der Selektionsprädikate
p
v
s
p
h
v
s
Datenbanken für Mathematiker, WS 11/12
h
Kapitel 11: Anfragebearbeitung
32
Verschieben der Selektionsprädikate
v
p
p
v
s
s
h
h
Datenbanken für Mathematiker, WS 11/12
Kapitel 11: Anfragebearbeitung
33
Zusammenfassung von Selektionen und Kreuzprodukten zu Joins
v
p
v
s
h
Datenbanken für Mathematiker, WS 11/12
s
p
h
Kapitel 11: Anfragebearbeitung
34
Optimierung der Joinreihenfolge
Kommutativität und Assoziativität ausnutzen
s
h
v
s
p
v
h
p
Datenbanken für Mathematiker, WS 11/12
Kapitel 11: Anfragebearbeitung
35
Was bringt das ?
4
4
s
13
3
h
13
v
s
p
1
v
h
p
Datenbanken für Mathematiker, WS 11/12
Kapitel 11: Anfragebearbeitung
36
Einfügen von (zusätzlichen) Projektionen
s
s
h
h
v
p
Datenbanken für Mathematiker, WS 11/12
v
p
Kapitel 11: Anfragebearbeitung
37
Physische Optimierung
• Ziel ist es gute Algorithmen für die Ausführung auswählen
• Bei Join:
•
•
•
•
Nested-Loop-Join
Index-Nested-Loop-Join
Merge-Join
Hash-Join
• Indexe und Vorsortierungen sollten möglichst gut ausgenutzt
werden.
• Nach Bedarf werden Indexe und Sortierungen akut erstellt.
Datenbanken für Mathematiker, WS 11/12
Kapitel 11: Anfragebearbeitung
38
Datenbanken für Mathematiker, WS 11/12
Kapitel 11: Anfragebearbeitung
39
Implementierung von Join: Strategien
J1 nested (inner-outer) loop
• „brute force“-Algorithmus
foreach r  R
foreach s  S
if s.B = r.A then Res := Res  (r  s)
• Laufzeit: O(|R|*|S|) ~ O(n²)
• Keine Vorbedingungen
• Auch geeignet für das kartesische Produkt
• Fazit: Der einfachste und flexibelste Join
Datenbanken für Mathematiker, WS 11/12
Kapitel 11: Anfragebearbeitung
40
Implementierung von Join: Strategien
J2 Zugriffsstruktur auf S
Index Nested Loop Join
 in jedem Durchlauf von R werden
nur die in S qualifizierenden Tupel gelesen
 Vorbedingung: ein Index auf B
foreach
r  R
foreach s  S[B=r.A]
Res := Res  (r  s)





Laufzeit: O(|R|*query(S[B=r.A])*|S[B=r.A]|)
Queryzeit ist O(log n) für B-Bäume und O(1) für Hash
Wenn B Schlüssel ist, dann ist |S[B=r.A]|= 1
O(n) im besten Fall bis O(n²) im schlechtesten (∀ r,s: r.A = s.B)
Meistens O(n log n)
Datenbanken für Mathematiker, WS 11/12
Kapitel 11: Anfragebearbeitung
41
Implementierung von Join: Strategien
J3 Merge-Join
•
•
Vorbedingung: Beide Relationen sind passend sortiert.
2 pointer r, s =0
• while (R[r].exists() && S[s].exists())
{ if (R[r] == S[s]) {
output.add(R[r]);r++;s++; }
else if (r< s) r++;
else s++; }
•
•
falls A oder B Schlüsselattribut ist, wird jedes Tupel in R und S nur genau
einmal gelesen -> O(|R|+|S|) ~O(n)
Kann sich sogar lohnen, wenn R oder S erst sortiert werden müssen
1
3
6
7
9
11
13
2
4
6
7
8
11
13
Datenbanken für Mathematiker, WS 11/12
Kapitel 11: Anfragebearbeitung
42
Implementierung von Join: Strategien
J4 Hash-Join
R und S werden mittels der gleichen Hashfunktion h –
angewendet auf R.A und S.B – auf (dieselben) HashBuckets abgebildet
Hash-Buckets sind i.Allg. auf dem Hintergrundspeicher
(abhängig von der Größe der Relationen)
Zu verbindende Tupel befinden sich dann im selben Bucket
Wird (nach praktischen Tests) nur von J3 „geschlagen“, wenn
die Relationen schon vorsortiert sind
Datenbanken für Mathematiker, WS 11/12
Kapitel 11: Anfragebearbeitung
43
Übersetzung der logischen Algebra
NestedLoopR.A=S.B
R
MergeJoinR.A=S.B
[Bucket]
[SortR.A]
[SortS.B]
S
R
S
AR.A=S.B
R
S
IndexJoinR.A=S.B
R
HashJoinR.A=S.B
[HashS.B | TreeS.B]
R
S
Datenbanken für Mathematiker, WS 11/12
Kapitel 11: Anfragebearbeitung
S
44
Implementierung von Select: Strategien
• S1 Select
• Brute-Force: Jedes Tupel wird einzeln überprüft
• O(n)
• S2 IndexSelect
• Der Index wird benutzt um die Anfrage schneller zu beantworten
• O(1) bei Hash Index und Gleichheit
• O(log n) bei B-Baum und Gleichheit
• O(log n) bei B-Baum und Bereichsanfrage
Datenbanken für Mathematiker, WS 11/12
Kapitel 11: Anfragebearbeitung
45
Übersetzung der logischen Algebra
IndexSelectP
R
P
R
SelectP
R
Datenbanken für Mathematiker, WS 11/12
Kapitel 11: Anfragebearbeitung
46
Implementierung der Projektion
• Wenn mit dem Projektionsergebnis weitergerechnet wird, muss
das Zwischenergebnis dupliziert werden.
• Die Duplikation sollte nach Möglichkeit einen Index oder eine
Sortierung erhalten, wenn diese noch weiter benötigt werden.
Datenbanken für Mathematiker, WS 11/12
Kapitel 11: Anfragebearbeitung
47
Übersetzung der logischen Algebra
[IndexDup]
[SortDup]
[Hash | Tree]
l
Sort
Projectl
R
Projectl
R
[NestedDup]
R
Projectl
Datenbanken für Mathematiker, WS 11/12
RKapitel 11: Anfragebearbeitung
48
Wiederholung der Optimierungsphasen
s.Semester
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
p.Name = ´Sokrates´ and ...



s
Datenbanken für Mathematiker, WS 11/12
p
Kapitel 11: Anfragebearbeitung
v
h
49
s
s
h
h
v
v
Datenbanken für Mathematiker, WS 11/12
Kapitel 11: Anfragebearbeitung
50
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
Datenbanken für Mathematiker, WS 11/12
Kapitel 11: Anfragebearbeitung
51

Tuning von Datenbanken
Statistiken (Histogramme, etc.) müssen explizit angelegt werden
Anderenfalls liefern die Kostenmodelle falsche Werte
In Oracle …
 analyze table Professoren compute statistics
 analyze table Professoren estimate statistics
In DB2 …
 runstats on table …
Datenbanken für Mathematiker, WS 11/12
Kapitel 11: Anfragebearbeitung
52

Analysieren von Leistungsengpässen
Geschätzte
Kosten von
Oracle
Datenbanken für Mathematiker, WS 11/12
Kapitel 11: Anfragebearbeitung
53
Fazit
Datenbankoptimierung ist recht kompliziert
Die Besonderheiten der Anfragesprache erlauben es weitgehende
Optimierungen durchzuführen.
Dabei ist vor allem die Reihenfolge der Operationen relevant.
Indexe ermöglichen es schnellere Operationen zu verwenden.
Über Verschachtelungen hinweg, kann es allerdings schneller
sein, sie nicht zu benutzen.
Datenbanken für Mathematiker, WS 11/12
Kapitel 11: Anfragebearbeitung
54
Herunterladen