54
Dr. Brigitte Mathiak Kapitel 11 Anfragebearbeitung

Kapitel 11

  • Upload
    denis

  • View
    40

  • Download
    0

Embed Size (px)

DESCRIPTION

Kapitel 11. Anfragebearbeitung. Lernziele. . Relationenalgebra Ablauf der Anfrageoptimierung Logische Optimierung Umwandlung von SQL in Relationenalgebra Heuristische Optimierung Physische Optimierung Unterschiedliche JOIN Algorithmen Kostenbasierte Optimierung. - PowerPoint PPT Presentation

Citation preview

Page 1: Kapitel 11

Dr. Brigitte MathiakKapitel 11

Anfragebearbeitung

Page 2: Kapitel 11

2

Datenbanken für Mathematiker, WS 11/12 Kapitel 11: Anfragebearbeitung

Lernziele

• Relationenalgebra

• Ablauf der Anfrageoptimierung

• Logische Optimierung• Umwandlung von SQL in Relationenalgebra• Heuristische Optimierung

• Physische Optimierung • Unterschiedliche JOIN Algorithmen

• Kostenbasierte Optimierung

Page 3: Kapitel 11

3

Datenbanken für Mathematiker, WS 11/12 Kapitel 11: Anfragebearbeitung

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“

Optimierung von Datenbank- Anfragen: Grundsätze

Page 4: Kapitel 11

4

Datenbanken für Mathematiker, WS 11/12 Kapitel 11: Anfragebearbeitung

Ablauf der Anfrageoptimierung

ScannerParser

Sichtenauflösung

Anfrage-Optimierer

CodeerzeugungAusführung

DeklarativeAnfrage

AlgebraischerAusdruck

Auswertungs-Plan (QEP)

Page 5: Kapitel 11

Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra 5

ProfessorenPersNr Name Ran

gRaum

2125 Sokrates C4 2262126 Russel C4 232

2127 Kopernikus C3 310

2133 Popper C3 52

2134 Augustinus C3 309

2136 Curie C4 362137 Kant C4 7

prüfenMatrNr VorlNr Pers

Nr Note

28106 5001 2126 1

25403 5041 2125 2

Relationenmodell revisited: Grundbegriffe

DB: Relationen(tables)

AusprägungÍ dom (PersNr) dom (Name) ... dom (Raum)

Schema

Tupel (Record, Row)

Attribut (Column)

Page 6: Kapitel 11

Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra 6

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).

Page 7: Kapitel 11

Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra 7

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

Page 8: Kapitel 11

Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra 8

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:

Page 9: Kapitel 11

Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra 9

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).

Page 10: Kapitel 11

Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra 10

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)

Page 11: Kapitel 11

Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra 11

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.

Page 12: Kapitel 11

Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra 12

Projektion

Projektion (Auswahl von Spalten einer Tabelle):

Sei A Í sch(R). Das Resultat einer Projektion [A](R) ist:

Page 13: Kapitel 11

Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra 13

Selektion vs. Projektion

Selektion

Projektion

Page 14: Kapitel 11

Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra 14

Selektion / Projektion: Beispiel

MatrNr Name Semester24002 Xenokrates 1825403 Jonas 12

Selektion:

RangC3

C4

Projektion:

[Semester > 10] (Studenten)

[Rang] (Professoren)

StudentenMatrNr Name Semester24002 Xenokrates 1825403 Jonas 1226120 Fichte 1026830 Aristoxenos 827550 Schopenhaue

r6

28106 Carnap 329120 Theophrastos 229555 Feuerbach 2

ProfessorenPersNr Name Rang Raum2125 Sokrates C4 2262126 Russel C4 2322127 Kopernikus C3 3102133 Popper C3 522134 Augustinus C3 3092136 Curie C4 362137 Kant C4 7

Page 15: Kapitel 11

Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra 15

Beispiel: Selektion/Projektion mit Umbenennung

Mengendurchschnitt nur auf zwei Argumentrelationen mit gleichem Schema anwendbar. Deshalb ist die Umbenennung des Attributes gelesenVon in PersNr in der Relation Vorlesungen notwendig.

Anfrage:

PersNr aller C4-Professoren, die mindestens eine Vorlesung halten.

ProfessorenPersNr Name Rang Raum2125 Sokrates C4 2262126 Russel C4 2322127 Kopernikus C3 3102133 Popper C3 522134 Augustinus C3 3092136 Curie C4 362137 Kant C4 7

VorlesungenVorlNr Titel SWS gelesenVon

5001 Grundzüge 4 21375041 Ethik 4 21255043 Erkenntnistheorie 3 21265049 Mäeutik 2 21254052 Logik 4 21255052 Wissenschaftstheorie 3 2126

5216 Bioethik 2 21265259 Der Wiener Kreis 2 21335022 Glaube und Wissen 2 21344630 Die 3 Kritiken 4 2137

Page 16: Kapitel 11

Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra 16

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)

X1 X2 ... Xm Y1 Y2 ... Yk Z1 Z2 ... Zn

P |×| QP Q P Q Q P

Page 17: Kapitel 11

Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra 17

Natural Join: Beispiel

||

StudentenMatrNr Name Semester24002 Xenokrates 1825403 Jonas 1226120 Fichte 226830 Aristoxenos 827550 Schopenhaue

r1

hörenMatrNr VorlNr24002 500125403 500124002 405224002 504126830 5052

MatrNr Name Semester VorlNr24002 Xenokrates 18 500124002 Xenokrates 18 405224002 Xenokrates 18 504125403 Jonas 12 500126830 Aristoxenos 8 5052

Page 18: Kapitel 11

Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra 18

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:

X1 X2 ... XmP.Y

1

P.Y2

… P.Yk

Q.Y1

Q.Y2

… Q.Yk

Z1 Z2 ... Zn

P (X1,..., Xm, Y1,..., Yk)Q (Y1,..., Yk, Z1,..., Zn)

P × Q

Page 19: Kapitel 11

Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra 19

Kartesisches Produkt: Beispiel

PersNr Name Rang Raum MatrNr VorlNr2125 Sokrates C4 226 26120 5001

... ... ... ... ... ...2125 Sokrates C4 226 29555 5001

... ... ... ... ... ...2137 Kant C4 7 29555 5001

×

Problem: potentiell riesige Zwischenergebnisse

sch(Professoren) sch(hören)

ProfessorenPersNr Name Rang Raum2125 Sokrates C4 2262126 Russel C4 2322127 Kopernikus C3 3102133 Popper C3 522134 Augustinus C3 3092136 Curie C4 362137 Kant C4 7

hörenMatrNr VorlNr26120 500127550 500127550 405228106 504128106 505228106 5216

... ...

Page 20: Kapitel 11

Grundlagen der Datenbanken, WS 08/09 Kapitel 5: Relationale Algebra 20

Äquivalenzregeln ("Rechenregeln") der RAKommutativitätsregeln:

1) falls P nur R1-Attribute enthält2)

Assoziativitätsregel:3) Idempotenzregeln:4) 5)Distributivitätsregeln:6) 7) 8) falls P nur R-Attribute enthält9) falls Joinattribute10) Í R1 S1

Invertierungsregel:11)

Page 21: Kapitel 11

Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra 21

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.

Page 22: Kapitel 11

Eigenschaften der Relationenalgebra (1/2)

Satz: Alle Ergebnismengen von Operationen der relationalen Algebra sind endlich. Beweisskizze:

Grundlagen der Datenbanken, WS 10/11 Kapitel 5: Relationale Algebra 22

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. □

Page 23: Kapitel 11

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

Page 24: Kapitel 11

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

Page 25: Kapitel 11

25

Datenbanken für Mathematiker, WS 11/12 Kapitel 11: Anfragebearbeitung

Logische Optimierung

1. Übersetzen der SQL-Anfrage in die Relationenalgebra

2. Äquivalentes Umformen der RA um die Anfragebearbeitung zu beschleunigen

Page 26: Kapitel 11

26

Datenbanken für Mathematiker, WS 11/12 Kapitel 11: Anfragebearbeitung

Allgemeingültige Übersetzung

SELECT A1, ..., AnFROM R1, ..., RkWHERE P

R1 R2

R3

Rk

Page 27: Kapitel 11

27

Datenbanken für Mathematiker, WS 11/12 Kapitel 11: Anfragebearbeitung

Allgemeingültige Übersetzung (Beispiel)

SELECT TitelFROM Professoren, VorlesungenWHERE Name = ´Popper´ AND PersNr = gelesenVon

Professoren Vorlesungen

Problem: Professoren Vorlesung hat ist ein sehr großes Zwischenergebnise

Page 28: Kapitel 11

28

Datenbanken für Mathematiker, WS 11/12 Kapitel 11: Anfragebearbeitung

Erste Optimierungsidee

Professoren

Vorlesungen

SELECT TitelFROM Professoren, VorlesungenWHERE Name = ´Popper´ AND PersNr = gelesenVon

Das Zwischenergebnis ist nun deutlich kleiner.

Page 29: Kapitel 11

29

Datenbanken für Mathematiker, WS 11/12 Kapitel 11: Anfragebearbeitung

Zur Erinnerung: Äquivalenzregeln der RAKommutativitätsregeln:

1) falls P nur R1-Attribute enthält2)

Assoziativitätsregel:3) Idempotenzregeln:4) 5)Distributivitätsregeln:6) 7) 8) falls P nur R-Attribute enthält9) falls Joinattribute10) Í R1 S1

Invertierungsregel:11)

Page 30: Kapitel 11

30

Datenbanken für Mathematiker, WS 11/12 Kapitel 11: Anfragebearbeitung

1. Mittels Regel 1 werden konjunktive Selektionsprädikate in Kaskaden von -Operationen zerlegt.

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 derjenige, der das kleinste Zwischenergebnis liefert, zuerst ausgewertet wird.

4. Forme eine -Operation, die von 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.

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 Projektionen zu einer Filter-Operation).

Heuristische Anwendung der Transformationsregeln

Selektion nach unten

Kleine Zwischenergebnisse

Besser Join als Kartesisch

Projektionen nach unten(jedoch über die Selektionen)

Operationen zusammenfassen

Page 31: Kapitel 11

31

Datenbanken für Mathematiker, WS 11/12 Kapitel 11: Anfragebearbeitung

Anwendung der Transformationsregeln

SELECT distinct s.SemesterFROM Studenten s, hören h Vorlesungen v, Professoren pWHERE p.Name = ´Sokrates´ AND v.gelesenVon = p.PersNr AND v.VorlNr = h.VorlNr AND h.MatrNr = s.MatrNr

s h

v

p

Page 32: Kapitel 11

32

Datenbanken für Mathematiker, WS 11/12 Kapitel 11: Anfragebearbeitung

Aufspalten der Selektionsprädikate

s hv

ps h

v

p

Page 33: Kapitel 11

33

Datenbanken für Mathematiker, WS 11/12 Kapitel 11: Anfragebearbeitung

Verschieben der Selektionsprädikate

s h

vp

s hv

p

Page 34: Kapitel 11

34

Datenbanken für Mathematiker, WS 11/12 Kapitel 11: Anfragebearbeitung

Zusammenfassung von Selektionen und Kreuzprodukten zu Joins

s h

vp

s h

vp

Page 35: Kapitel 11

35

Datenbanken für Mathematiker, WS 11/12 Kapitel 11: Anfragebearbeitung

Optimierung der JoinreihenfolgeKommutativität und Assoziativität ausnutzen

s

h

v

p

s h

v p

Page 36: Kapitel 11

36

Datenbanken für Mathematiker, WS 11/12 Kapitel 11: Anfragebearbeitung

Was bringt das ?

s

h

v

p

s h

v p

13

13

4

1

3

4

Page 37: Kapitel 11

37

Datenbanken für Mathematiker, WS 11/12 Kapitel 11: Anfragebearbeitung

Einfügen von (zusätzlichen) Projektionen

s

h

v

p

s

h

v

p

Page 38: Kapitel 11

38

Datenbanken für Mathematiker, WS 11/12 Kapitel 11: Anfragebearbeitung

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.

Page 39: Kapitel 11

39

Datenbanken für Mathematiker, WS 11/12 Kapitel 11: Anfragebearbeitung

Page 40: Kapitel 11

40

Datenbanken für Mathematiker, WS 11/12 Kapitel 11: Anfragebearbeitung

J1 nested (inner-outer) loop

• „brute force“-Algorithmus

foreach r Rforeach 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

Implementierung von Join: Strategien

Page 41: Kapitel 11

41

Datenbanken für Mathematiker, WS 11/12 Kapitel 11: Anfragebearbeitung

J2 Zugriffsstruktur auf SIndex Nested Loop Join

in jedem Durchlauf von R werden nur die in S qualifizierenden Tupel gelesen

Vorbedingung: ein Index auf B

foreach r Rforeach 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)

Implementierung von Join: Strategien

Page 42: Kapitel 11

42

Datenbanken für Mathematiker, WS 11/12 Kapitel 11: Anfragebearbeitung

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

Implementierung von Join: Strategien

1 3 6 7 9 11 13

2 4 6 7 8 11 13

Page 43: Kapitel 11

43

Datenbanken für Mathematiker, WS 11/12 Kapitel 11: Anfragebearbeitung

J4 Hash-Join

R und S werden mittels der gleichen Hashfunktion h – angewendet auf R.A und S.B – auf (dieselben) Hash-Buckets 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 BucketWird (nach praktischen Tests) nur von J3 „geschlagen“, wenn

die Relationen schon vorsortiert sind

Implementierung von Join: Strategien

Page 44: Kapitel 11

44

Datenbanken für Mathematiker, WS 11/12 Kapitel 11: Anfragebearbeitung

Übersetzung der logischen Algebra

R S

AR.A=S.B

R S

HashJoinR.A=S.B

R S

MergeJoinR.A=S.B

[SortR.A] [SortS.B]

R

S

IndexJoinR.A=S.B

[HashS.B | TreeS.B]

R

S

NestedLoopR.A=S.B

[Bucket]

Page 45: Kapitel 11

45

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

Page 46: Kapitel 11

46

Datenbanken für Mathematiker, WS 11/12 Kapitel 11: Anfragebearbeitung

Übersetzung der logischen Algebra

P

R

SelectP

R

IndexSelectP

R

Page 47: Kapitel 11

47

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

Page 48: Kapitel 11

48

Datenbanken für Mathematiker, WS 11/12 Kapitel 11: Anfragebearbeitung

Übersetzung der logischen Algebra

l

R

[NestedDup]

Projectl

R

[SortDup]

Sort

Projectl

R

[IndexDup]

[Hash | Tree]

Projectl

R

Page 49: Kapitel 11

49

Datenbanken für Mathematiker, WS 11/12 Kapitel 11: Anfragebearbeitung

Wiederholung der Optimierungsphasen

select distinct s.Semesterfrom Studenten s, hören h Vorlesungen v, Professoren pwhere 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 50: Kapitel 11

50

Datenbanken für Mathematiker, WS 11/12 Kapitel 11: Anfragebearbeitung

s

h

v

s

h

v

Page 51: Kapitel 11

51

Datenbanken für Mathematiker, WS 11/12 Kapitel 11: Anfragebearbeitung

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

Page 52: Kapitel 11

52

Datenbanken für Mathematiker, WS 11/12 Kapitel 11: Anfragebearbeitung

Tuning von Datenbanken

Statistiken (Histogramme, etc.) müssen explizit angelegt werdenAnderenfalls liefern die Kostenmodelle falsche Werte

In Oracle … analyze table Professoren compute statistics analyze table Professoren estimate statistics

In DB2 … runstats on table …

Page 53: Kapitel 11

53

Datenbanken für Mathematiker, WS 11/12 Kapitel 11: Anfragebearbeitung

Analysieren von Leistungsengpässen

Geschätzte Kosten von

Oracle

Page 54: Kapitel 11

54

Fazit

Datenbanken für Mathematiker, WS 11/12 Kapitel 11: Anfragebearbeitung

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.