46
Datenbanksysteme I Anfragebearbeitung und -optimierung 27.6.2011 Felix Naumann

Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

  • Upload
    lekiet

  • View
    215

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Datenbanksysteme IAnfragebearbeitung und -optimierung

27.6.2011Felix Naumann

Page 2: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Anfragebearbeitung – Grundproblem

■ Anfragen sind deklarativ.

□ SQL, Relationale Algebra

■ Anfragen müssen in ausführbare (prozedurale) Form transformiert werden.

■ Ziele

□ „QEP“ – prozeduraler Query Execution Plan

□ Effizienz

◊ Schnell

◊ Wenig Ressourcenverbrauch (CPU, I/O, RAM, Bandbreite)

◊ Energie

Felix Naumann | Datenbanksysteme I | Sommer 2011

2

Page 3: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Ablauf der Anfragebearbeitung

1. Parsing□ Parsen der Anfrage (Syntax)□ Überprüfen der Elemente („Semantik“)□ Parsebaum

2. Wahl des logischen Anfrageplans□ Baum mit logischen Operatoren□ Potentiell exponentiell viele□ Wahl des optimalen Plans

◊ Logische Optimierung◊ Regelbasierter Optimierer◊ Kostenbasierter Optimierer

3. Wahl des physischen Anfrageplans□ Ausführbar□ Programm mit physischen Operatoren

◊ Algorithmen◊ Scan Operatoren

□ Wahl des optimalen Plans◊ physische Optimierung

Felix Naumann | Datenbanksysteme I | Sommer 2011

3

Anfrageplan ausführen

Parsing

Wahl des logischen Anfrageplans

Wahl des physischen Anfrageplans

SQL Anfrage

Page 4: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Überblick

■ Parsen der Anfrage

■ Transformationsregeln der RA

■ Optimierung

■ Kostenmodelle

Felix Naumann | Datenbanksysteme I | Sommer 2011

4

Hinweis: Ausflug ins Kapitel 16 des Lehrbuchs

Page 5: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Syntaxanalyse

Aufgabe: Umwandlung einer SQL Anfrage in einen Parsebaum.

■ Atome (Blätter)

□ Schlüsselworte

□ Konstanten

□ Namen (Relationen und Attribute)

□ Syntaxzeichen

□ Operatoren

■ Syntaktische Kategorien

□ Namen für Teilausdrücke einer Anfrage

Felix Naumann | Datenbanksysteme I | Sommer 2011

5

Page 6: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Eine Grammatik für einen Teil von SQL

■ Anfragen□ <Anfrage> :: = <SFW>□ <Anfrage> :: = ( <SFW> )□ Mengenoperatoren fehlen

■ SFWs□ <SFW> ::= SELECT <SelListe> FROM <FromListe> WHERE <Bedingung>□ Gruppierung, Sortierung etc. fehlen

■ Listen□ <SelListe> ::= <Attribut>, <SelListe>□ <SelListe> ::= <Attribut>□ <FromListe> ::= <Relation>, <FromListe>□ <FromListe> ::= <Relation>

■ Bedingungen (Beispiele)□ <Bedingung> ::= <Bedingung> AND <Bedingung>□ <Bedingung> ::= <Tupel> IN <Anfrage>□ <Bedingung> ::= <Attribut> = <Attribut>□ <Bedingung> ::= <Attribut> LIKE <Muster>

■ <Tupel>, <Attribut>, <Relation>, <Muster> nicht durch grammatische Regel definiert

■ Vollständig z.B. hier: http://docs.openlinksw.com/virtuoso/GRAMMAR.html

Felix Naumann | Datenbanksysteme I | Sommer 2011

6

Page 7: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Parse-Baum

Felix Naumann | Datenbanksysteme I | Sommer 2011

7<Anfrage>

<SFW>

SELECT <SelListe> FROM <FromListe> <Bedingung>WHERE

<Attribut> <Relation> , <FromListe> <Bedingung> AND <Bedingung>

Titel spielt_in <Relation>

Schauspieler

<Attribut> <Attribut>= <Attribut> LIKE <Muster>

SchauspielerName Name Geburtstag ‘%1960’

SELECT TitelFROM spielt_in, SchauspielerWHERE SchauspielerName = NameAND Geburtstag LIKE ‘%1960’;

Page 8: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Prüfung der Semantik

Während der Übersetzung semantische Korrektheit prüfen

■ Existieren die Relationen und Sichten der FROM Klausel?

■ Existieren die Attribute in den genannten Relationen?

□ Sind sie eindeutig?

■ Korrekte Typen für Vergleiche?

■ Aggregation korrekt?

■ ...

Felix Naumann | Datenbanksysteme I | Sommer 2011

8

Page 9: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Vom Parse-Baum zum Operatorbaum

Felix Naumann | Datenbanksysteme I | Sommer 2011

9 <Anfrage>

<SFW>

SELECT <SelListe> FROM <FromListe> <Bedingung>WHERE

<Attribut> <Relation> , <FromListe> <Bedingung> AND <Bedingung>

Titel spielt_in <Relation>

Schauspieler

<Attribut> <Attribut>= <Attribut> LIKE <Muster>

SchauspielerName Name Geburtstag ‘%1960’

SELECT TitelFROM spielt_in, SchauspielerWHERE SchauspielerName = Name

AND Geburtstag LIKE ‘%1960’;

spielt_in Schauspieler

SchauspielerName=Name AND Geburtstag LIKE ‘%1960’

Titel

Page 10: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Überblick

■ Parsen der Anfrage

■ Transformationsregeln der Relationalen Algebra

■ Optimierung

■ Kostenmodelle

Felix Naumann | Datenbanksysteme I | Sommer 2011

10

Page 11: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Anfragebearbeitung –Transformationsregeln

■ Transformation der internen Darstellung

□ Ohne Semantik zu verändern

□ Zur effizienteren Ausführung

◊ Insbesondere: Kleine Zwischenergebnisse

■ Äquivalente Ausdrücke

□ Zwei Ausdrücke der relationalen Algebra heißen äquivalent, falls

◊ Gleiche Operanden (= Relationen)

◊ Stets gleiche Antwortrelation

● Stets?

Felix Naumann | Datenbanksysteme I | Sommer 2011

11

Für jede mögliche Instanz der Datenbank

Page 12: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Anfragebearbeitung – Beispiel

Felix Naumann | Datenbanksysteme I | Sommer 2011

12

(Nachname)

mitarbeiter projekte

X

(p.Budget < 40.000)

(m.p_id = p.p_id)

(Nachname)

mitarbeiter projekte

m.p_id = p.p_id

(p.Budget < 40.000)

Page 13: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Anfragebearbeitung – Beispiel

Felix Naumann | Datenbanksysteme I | Sommer 2011

13

(Nachname)

mitarbeiter projekte

m.p_id = p.p_id

(p.Budget < 40.000)

(Nachname)

mitarbeiter projekte

m.p_id = p.p_id

(p.Budget < 40.000)

Page 14: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Felix Naumann | Datenbanksysteme I | Sommer 2011

14

Kommutativität und Assoziativität

■ ist kommutativ und assoziativ

□ R S = S R

□ (R S) T = R (S T)

■ ist kommutativ und assoziativ

□ R S = S R

□ (R S) T = R (S T)

■ ist kommutativ und assoziativ

□ R S = S R

□ (R S) T = R (S T)

■ ⋈ ist kommutativ und assoziativ

□ R ⋈ S = S ⋈ R

□ (R ⋈ S) ⋈ T = R ⋈ (S ⋈ T)

Gilt jeweils für Mengen und Multimengen

Ausdrücke können in beide Richtungen verwendet werden.

Page 15: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Felix Naumann | Datenbanksysteme I | Sommer 2011

15

Weitere Regeln

Selektion

■ c1 AND c2(R ) = c1(c2 (R))

■ c1 OR c2(R ) = c1(R) c2 (R)

□ Nicht bei Multimengen

■ c1(c2(R)) = c2(c1(R))

■ c(R S) (c (R)) (c (S))

□ {, , , ⋈}

■ c(R S) (c (R)) S

□ {, , , ⋈}

□ Falls sich c nur auf Attribute in R bezieht.

Projektion

■ L(R ⋈ S) = L(M(R) ⋈ N(S))

■ L(R ⋈C S) = L(M(R) ⋈C N(S))

■ L(R S) = L(M(R) N(S))

■ LC(R)) = L(C(M(R)))

Page 16: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Überblick

■ Parsen der Anfrage

■ Transformationsregeln der RA

■ Optimierung

■ Kostenmodelle

Felix Naumann | Datenbanksysteme I | Sommer 2011

16

Page 17: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Grundsätze der Anfrageoptimierung

■ High-level SQL (deklarativ nicht prozedural)

□ „was“, nicht „wie“.

■ Das „wie“ bestimmt sich aus der Abbildung der mengen-orientierten Operatoren auf die 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.

□ Äquivalenzerhaltende Transformationen

■ Im Allgemeinen wird nicht die optimale Auswertungsstrategie gesucht, sondern eine einigermaßen effiziente Variante.

□ Ziel: Avoid the worst case.

Felix Naumann | Datenbanksysteme I | Sommer 2011

17

Folie: Prof. Alfons Kemper, TU München

Page 18: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Anfragebearbeitung - Optimierung

Regelbasierte Optimierung

■ Fester Regelsatz schreibt Transformationen gemäß der genannten Regeln vor.

■ Prioritäten unter den Regeln

□ Heuristik

Kostenbasierte Optimierung

■ Kostenmodell

■ Transformationen um Kosten zu verringern

■ Bestimmung des optimalen Plans

□ Bestimmung der optimalen Joinreihenfolge

Felix Naumann | Datenbanksysteme I | Sommer 2011

18

Page 19: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Logische und physische Optimierung

■ Logische Optimierung

□ Jeder Ausdruck kann in viele verschiedene, semantisch äquivalente Ausdrücke umgeschrieben werden.

□ Wähle den (hoffentlich) besten Ausdruck (=Plan, =QEP)

■ Physische Optimierung

□ Für jede relationale Operation gibt es viele verschiedene Implementierungen.

□ Zugriff auf Tabellen

◊ Scan, verschiedene Indizes, sortierter Zugriff, …

□ Joins

◊ Nested loop, sort-merge, hash, …

□ Wähle für jede Operation die (hoffentlich) beste Implementierung

■ Abhängigkeit beider Probleme!

Felix Naumann | Datenbanksysteme I | Sommer 2011

19

Page 20: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Logische Optimierung

■ Grundsätze der logischen Optimierung

□ Selektionen so weit wie möglich im Baum nach unten schieben.

□ Selektionen mit AND können aufgeteilt und separat verschoben werden.

□ Projektionen so weit wie möglich im Baum nach unten schieben,

◊ bzw. neue Projektionen können eingefügt werden.

□ Duplikateliminierung kann manchmal entfernt werden oder verschoben werden.

□ Kreuzprodukte mit geeigneten Selektionen zu einem Joinzusammenfassen.

■ Noch nicht hier: Suche nach der optimalen Joinreihenfolge

Felix Naumann | Datenbanksysteme I | Sommer 2011

20

Folie: Prof. Alfons Kemper, TU München

Page 21: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Anwendung der Transformationsregeln

select distinct s.Semesterfrom 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

Felix Naumann | Datenbanksysteme I | Sommer 2011

21

s h

v

p

p.Name = ´Sokrates´ and ...

s.Semester

Folie: Prof. Alfons Kemper, TU München

In welchen Semestern sind die Studenten, die VLen

bei Sokrates hören?

δ

Page 22: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Aufspalten der Selektionsprädikate

Felix Naumann | Datenbanksysteme I | Sommer 2011

22

s h

v

p

p.Name = ´Sokrates´ and ...

s.Semester

s hv

p

p.PersNr=v.gelesenVon

s.Semester

p.Name = ´Sokrates´

s.MatrNr=h.MatrNr

v.VorlNr=h.VorlNr

Folie: Prof. Alfons Kemper, TU München

δδ

Page 23: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Verschieben der Selektionsprädikate„Pushing Selections“

Felix Naumann | Datenbanksysteme I | Sommer 2011

23

s h

vp

p.PersNr=v.gelesenVon

s.Semester

p.Name = `Sokrates`

s.MatrNr=h.MatrNr

v.VorlNr=h.VorlNr

s hv

p

p.PersNr=v.gelesenVon

s.Semester

p.Name = ´Sokrates´

s.MatrNr=h.MatrNr

v.VorlNr=h.VorlNr

Folie: Prof. Alfons Kemper, TU München

δδ

Page 24: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Zusammenfassung von Selektionen und Kreuzprodukten zu Joins

Felix Naumann | Datenbanksysteme I | Sommer 2011

24

s h

vp

p.PersNr=v.gelesenVon

s.Semester

p.Name = ´Sokrates´

s.MatrNr=h.MatrNr

v.VorlNr=h.VorlNr

s h

vp⋈s.MatrNr=h.MatrNr

⋈p.PersNr=v.gelesenVon

s.Semester

p.Name = ´Sokrates´

⋈v.VorlNr=h.VorlNr

Folie: Prof. Alfons Kemper, TU München

δ

δ

Page 25: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Optimierung der Joinreihenfolge: Kommutativität und Assoziativität ausnutzen

Felix Naumann | Datenbanksysteme I | Sommer 2011

25

s

h

v

p

⋈s.MatrNr=h.MatrNr

⋈p.PersNr=v.gelesenVon

s.Semester

p.Name = ´Sokrates´

⋈v.VorlNr=h.VorlNr

s h

vp

⋈p.PersNr=v.gelesenVon

s.Semester

p.Name = ´Sokrates´

⋈v.VorlNr=h.VorlNr

⋈s.MatrNr=h.MatrNr

Folie: Prof. Alfons Kemper, TU München

δ

δ

Page 26: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Was hat´s gebracht?

Felix Naumann | Datenbanksysteme I | Sommer 2011

26

s

h

v

p

⋈s.MatrNr=h.MatrNr

⋈p.PersNr=v.gelesenVon

s.Semester

p.Name = ´Sokrates´

⋈v.VorlNr=h.VorlNr

s h

vp

⋈p.PersNr=v.gelesenVon

s.Semester

p.Name = ´Sokrates´

⋈v.VorlNr=h.VorlNr

⋈s.MatrNr=h.MatrNr

13

13

4

1

3

4

4

Folie: Prof. Alfons Kemper, TU München

δ

δ

Page 27: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Einfügen von Projektionen

Felix Naumann | Datenbanksysteme I | Sommer 2011

27

s

h

v

p

⋈s.MatrNr=h.MatrNr

⋈p.PersNr=v.gelesenVon

s.Semester

p.Name = ´Sokrates´

⋈v.VorlNr=h.VorlNr

s

h

v

p

⋈s.MatrNr=h.MatrNr

⋈p.PersNr=v.gelesenVon

s.Semester

p.Name = ´Sokrates´

⋈v.VorlNr=h.VorlNr

h.MatrNr

Folie: Prof. Alfons Kemper, TU München

δ

δ

Page 28: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Überblick

■ Parsen der Anfrage

■ Transformationsregeln der RA

■ Optimierung

■ Kostenmodelle

Felix Naumann | Datenbanksysteme I | Sommer 2011

28

Page 29: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Kostenbasierte Optimierung

■ Konzeptionell: Generiere alle denkbaren Anfrageausführungspläne.

■ Bewerte deren Kosten anhand eines Kostenmodells

□ Statistiken und Histogramme

□ Kalibrierung gemäß verwendeter Rechner

□ Abhängig vom verfügbaren Speicher

□ Aufwands-Kostenmodell

◊ Durchsatz-maximierend◊ Nicht Antwortzeit-minimierend

■ Führe billigsten Plan aus

Felix Naumann | Datenbanksysteme I | Sommer 2011

29

Achtung: Nicht zu lange optimieren!

Page 30: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Problemgröße (Suchraum)

■ Konzeptionell: Generiere alle denkbaren Anfrageausführungspläne

■ Anzahl Bushy-Pläne mit n Tabellen

■ Plankosten unterscheiden sich um viele Größenordnungen.

■ Optimierungsproblem ist NP-hart

■ Jetzt: Kleiner Ausflug in die NP-Vollständigkeit

Felix Naumann | Datenbanksysteme I | Sommer 2011

30

n 2n (2(n-1))!/(n-1)!

2 4 2

5 32 1.680

10 1.024 1,76*1010

20 1.048.576 4,3*1027

(2(n-1))!

(n-1)!

Folie: Prof. Alfons Kemper, TU München

Page 31: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Ungut

Felix Naumann | Datenbanksysteme I | Sommer 2011

31

Page 32: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Besser, aber schwierig

Felix Naumann | Datenbanksysteme I | Sommer 2011

32

Page 33: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Immerhin

Felix Naumann | Datenbanksysteme I | Sommer 2011

33

Page 34: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

NP-vollständig heißt NICHT:

■ Nicht-Polynomial

■ Exponentieller Suchraum

□ Gegenbeispiel: One-Prozessor Scheduling

■ Exponentielle Laufzeit

□ vielleicht nur schlechter Algorithmus

■ unlösbar bzw. eine gute Entschuldigung

Felix Naumann | Datenbanksysteme I | Sommer 2011

35

Page 35: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

M - Prozessor Scheduling

MS: Instanz: Jobs j J, Joblängen l(j), m Prozessoren, deadline DFrage: Gibt es Schedule der Länge D?

MS: NP-vollständig

MS + gleiche l(j): polynomial

MS + gleiche l(j)+ Halbordnung: NP-vollständig

MS + gleiche l(j)+ Halbordnung + Wald: polynomial

MS + gleiche l(j)+ Halbordnung + Wald + Prozessorzuordnung: NP-vollständig

MS + gleiche l(j)+ Halbordnung + Wald + Prozessorzuordnung + festes m :

polynomial

Verkleinerung des Suchraums bedeutet NICHT Vereinfachung des Problems!

Felix Naumann | Datenbanksysteme I | Sommer 2011

36

Page 36: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Kostenmodell

Felix Naumann | Datenbanksysteme I | Sommer 2011

37

KostenmodellAlgebraischer

Ausdruck

Index-informationen

Ballungs-Informationen(Clustering on disk)

DB-Kardinalitäten Attributwertverteilungen

Ausführungskosten

Folie nach Prof. Alfons Kemper, TU München

Page 37: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Statistiken

Felix Naumann | Datenbanksysteme I | Sommer 2011

38

■ Zu jeder Basisrelation

□ Anzahl der Tupel (Kardinalität)

□ Tupelgröße

■ Zu (jedem) Attribut

□ Min / Max

□ Werteverteilung (Histogramm)

□ Anzahl der distinct Werte

■ Zum System

□ Speichergröße

□ Bandbreite

□ I/O Zeiten

□ CPU Zeiten

■ Problem: Erstellung und Update der Statistiken

□ Deshalb meist nur explizit/manuell zu initiieren

◊ runstats()

Page 38: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Kosten von Operationen

■ Projektion:

□ Keine Kosten falls mit anderem Operator kombiniert

■ Selektion

□ Ohne Index: Gesamte Relation von Festplatte lesen

□ Mit Baum-Index: Teil des Index von Platte lesen (Baumtiefe) und gesuchte Seite von Platte lesen

□ Bei Pipelining: (Fast) keine Kosten

■ Join

□ Je nach Joinalgorithmus

□ Nested Loops, Hash-Join, Sort-Merge Join

■ Sortierung: Nicht hierFelix Naumann | Datenbanksysteme I | Sommer 2011

39

Page 39: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Kosten von Operationen

■ Wesentliches Kostenmerkmal: Anzahl der Tupel im Input

□ Insbesondere: Passt die Relation in den Hauptspeicher?

□ Selektion, Projektion, Sortierung, Join

■ Output ist Input des nächsten Operators.

■ Deshalb: Ein Kostenmodel schätzt u.a. für jede Operation die Anzahl der Ausgabetupel.

□ „Selektivität“ in Bezug auf Inputgröße

□ #Ausgabetupel = #Eingabetupel x Selektivität

□ Auch „Selektivitätsfaktor“ (selectivity factor, sf)

Felix Naumann | Datenbanksysteme I | Sommer 2011

40

Page 40: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Selektivität

■ Selektivität schätzt Anzahl der qualifizierenden Tupel relativ zur Gesamtanzahl der Tupel in der Relation.

■ Projektion:

□ sf = |R|/|R| = 1

■ Selektion:

□ sf = |σC(R)| / |R|

■ Join:

□ sf = |R ⋈ S| / |R x S| = |R ⋈ S| / (|R| · |S|)

Felix Naumann | Datenbanksysteme I | Sommer 2011

41

Page 41: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Selektivität schätzen

■ Selektion:

□ Selektion auf einen Schlüssel:

◊ sf = 1 / |R|

□ Selektion auf einen Attribut A mit m verschiedenen Werten:

◊ sf = (|R| / m) / |R| = 1/m

◊ Dies ist nur geschätzt!

■ Join

□ Equijoin zwischen R und S über Fremdschlüssel in S

◊ sf = 1/ |R|

◊ „Beweis“: sf = |R ⋈ S| / (|R| x |S|) = |S| / (|R| · |S|)

Felix Naumann | Datenbanksysteme I | Sommer 2011

42

Page 42: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Selektivität schätzen

Felix Naumann | Datenbanksysteme I | Sommer 2011

43

Page 43: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Modelle zum besseren Schätzen der Selektivität

■ Gleichverteilung der Werte

□ Platzsparend (count, max, min), einfach

□ Schlechte Abschätzung bei “skew” (ungleiche Verteilung)

■ Histogramme (Beispiel gleich)

□ Parametrisierte Größe, einfach

□ Güte der Abschätzung hängt von Histogrammtyp und -größe ab.

□ Außerdem: Aktualität

■ Sampling

□ Repräsentative Teilmenge der Relation

□ Parametrisierte Größe, schwierig zu finden

□ Güte hängt von Samplingmethode und Samplegröße ab

□ Außerdem: Aktualität

Felix Naumann | Datenbanksysteme I | Sommer 2011

44

Page 44: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Beispiel zu Histogrammen

■ Gegeben 3300 products, 1M sales

■ Gleichverteilung

□ Preisspanne ist 0-1000 => Selektivität der Bedingung ist 9/10

◊ Erwartet: 9/10*3300 ≈ 3000 Produkte

■ Histogramm-basiert

□ Angenommen 10 equi-width buckets

□ Selektivität der Bedingung ist 5/3300 ≈ 0,0015 also 5 Produkte

Felix Naumann | Datenbanksysteme I | Sommer 2011

45

0

200

400

600

800

1000

1200

1400

1600

Frequency

0-1 1-2 2-5 5-10 10-20 20-50 50-100 100-1000

Price Range

SELECT *FROM product p, sales SWHERE p.id=s.p_id and

p.price > 100

Page 45: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Kosten – Weitere Komplikationen

■ Parallelität / Pipelining

□ Kosten aller Operatoren können nicht addiert werden.

■ Hauptspeichergröße

□ Pufferung und Caching

■ I/O Kosten (Lesen einer Seite) vs. CPU Kosten

■ Multiuser: Durchsatz statt Antwortzeit

■ => Kostenmodelle sind hochkomplex

Felix Naumann | Datenbanksysteme I | Sommer 2011

46

Page 46: Datenbanksysteme I Anfragebearbeitung und -optimierung · PDF fileSQL Anfrage. Überblick Parsen der Anfrage Transformationsregeln der RA Optimierung Kostenmodelle ... Gilt jeweils

Ausblick auf DBS II

■ Diverse Algorithmen für einzelne Operatoren

□ Insbesondere Join und Sortierung

■ Kostenmodelle/Kostenschätzung genauer

■ Optimale Joinreihenfolge: Dynamische Programmierung

■ Physische Anfragepläne / Pipelining

Felix Naumann | Datenbanksysteme I | Sommer 2011

47