• Keine Ergebnisse gefunden

Leon BornemannFolien basierend auf Maximilian Jenders,Thorsten Papenbrock Anfrageoptimierung I

N/A
N/A
Protected

Academic year: 2021

Aktie "Leon BornemannFolien basierend auf Maximilian Jenders,Thorsten Papenbrock Anfrageoptimierung I"

Copied!
31
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Übung Datenbanksysteme II

Anfrageoptimierung I

Leon Bornemann

Folien basierend auf

(2)

Themen

1.Nachbesprechung Hausaufgabe 3 2.Hybrid-Hashjoin

3.Postgresql Einführung

4.Algebraische Transformation 5.Kardinalitätsschätzung

2

(3)

Themen

1.Nachbesprechung Hausaufgabe 3 2.Hybrid-Hashjoin

3.Postgresql Einführung

4.Algebraische Transformation 5.Kardinalitätsschätzung

3

(4)

Hausaufgabe 4:

Aufgabe 1

Strategie

4

R R, a<50 R, a=50 R, 50<a<100

Full Scan 10

6

/B

=10

5

10

6

/B

=10

5

10

6

/B

=10

5

10

6

/B

=10

5

B

+

-Baum (h-1)+10

6

/M+10

6

(h-1)+50/M+50 (h-1)+1+1 (h-1)+50/M+49 Hash-Index 10

6

/(N*c)+10

6

50+50 1+1 49+49

 B: #Tupel/Block (=10)

 M: #Schlüssel-Pointer-Pare/Blatt-Block (>10)

 h: Höhe des B

+

-Baums

 N: #Daten-Pointer/Hash-Block (>10)

 c: Füllgrad eines Hash-Blocks

 Warum?

 Warum?

 Warum?

 Warum?

(5)

Hausaufgabe 3:

Bemerkungen

 Tupel und Blockkosten nicht vermischen!

 Bei Annahmen auf Sinnhaftigkeit achten

 Man braucht nur zwei (wie gezeigt)

 Bei mehr Annahmen jede Begründen!

5

(6)

Themen

1.Nachbesprechung Hausaufgabe 3 2.Hybrid-Hashjoin

3.Postgresql Einführung

4.Algebraische Transformation 5.Kardinalitätsschätzung

6

(7)

7

… … S

… … R

II 1 1

m m

… …

… …

… …

… …

… …

kk

… …

… …

… …

Main Memory M Overflow Blocks (Disk)

m

k - m

 Hashe S in k Buckets aber behalte m Buckets komplett in M

Komplette Buckets Komplette Buckets

Repräsentanten Repräsentanten

Wiederholung:

Hybrid Hashjoin

(8)

8

… … S

… … R

II 1 1

m m

… …

… …

… …

… …

… …

kk

… …

… …

… …

Main Memory M Overflow Blocks (Disk)

m

k - m

 Hashe S in k Buckets aber behalte m Buckets komplett in M

… … kk

Write to Disk Write to Disk

Wiederholung:

Hybrid Hashjoin

(9)

9

… … S

… … R

II 1 1

m m

… …

… …

… …

… …

… …

… …

… …

Main Memory M Overflow Blocks (Disk)

m

k - m

 Hashe S in k Buckets aber behalte m Buckets komplett in M

 Joinpartner aus R für die ersten m Blöcke brauchen keine zusätzliche IO

… … kk

… … kk Spart IO!

Spart IO!

Wie gewöhnlich Wie gewöhnlich

Wiederholung:

Hybrid Hashjoin

(10)

10

… … S

… … R

II 1 1

m m

… …

… …

… …

… …

… …

… …

… …

Main Memory M Overflow Blocks (Disk)

m

k - m

 Hashe S in k Buckets aber behalte m Buckets komplett in M

 Joinpartner aus R für die ersten m Blöcke brauchen keine zusätzliche IO

… … kk

… … kk

… … kk

… …

… …

… … Wie gewöhnlicher

Hashjoin

Wie gewöhnlicher Hashjoin

Wiederholung:

Hybrid Hashjoin

(11)

11

… … S

… … R

II 1 1

m m

… …

… …

… …

… …

… …

kk

… …

… …

… …

Main Memory M Overflow Blocks (Disk)

m

k - m  

Vollst. Buckets Vollst. Buckets

Repräsentanten Repräsentanten

Wiederholung:

Hybrid Hashjoin

(12)

12

 

Wiederholung:

Hybrid Hashjoin

(13)

Themen

1.Nachbesprechung Hausaufgabe 3 2.Hybrid-Hashjoin

3.Postgresql Einführung

4.Algebraische Transformation 5.Kardinalitätsschätzung

13

(14)

Hausaufgabe 4:

Vorbemerkungen

 Code bitte nicht als PDF abgeben :)

Bemerkung auf dem Zettel wird angepasst

 Bekannte Schnittstelle einhalten

 Wenn ihr Änderungen an bestehenden Klassen macht, bitte genau überlegen, ob ihr diese wirklich braucht.

 Die Postgresql Resultate können je nach Version deutlich

unterschiedliche sein. Das ist nicht weiter dramatisch. Schreibt einfach was in eurer Version das Ergebnis war.

14

(15)

15

 Wer hat Postgresql bereits installiert?

 Tutorials sind verlinkt

 Tech support über die Feiertage ist sehr unwahrscheinlich :)

 Erstellen von Login, Roles und anderem Administrativem:

 Diverse Tutorials findet ihr Online

PostgreSQL Einführung

(16)

16

 Eure Quellen

 Offizielle Dokumentation: https://

www.postgresql.org/docs/9.6/static/index.html

 Stackoverflow

 Bemerkungen zur Dokumentation:

 Beginnt mit allgemeiner Syntax, endet mit Beispielen

 Create Table: https://

www.postgresql.org/docs/8.2/static/sql-createtable.html

 Beginnt mit heranführender Erklärung

 Explain: https://

www.postgresql.org/docs/9.6/static/using-explain.html

PostgreSQL Einführung

(17)

17

 Ausgabe im Terminal, beenden mit ‘q’

PostgreSQL Einführung

 Explain gibt QEP aus:

Innerstes wird

Innerstes wird Geschätzte Kosten Geschätzte Kosten Geschätzte Geschätzte

Geschätzte Größe eines Tupels

in Bytes

Geschätzte Größe eines Tupels

in Bytes Geschätzte Startup

Kosten

Geschätzte Startup

Kosten

(18)

18

 Ausführung der Query, Ausgabe der tatsächlichen Zeiten/Größen

 Loops * rows = Gesamtgröße

PostgreSQL Einführung

Time und Cost sind

Time und Cost sind Wie oft wurde die Wie oft wurde die Tatsächliche Größe

Tatsächliche Größe

(19)

Themen

1.Nachbesprechung Hausaufgabe 3 2.Hybrid-Hashjoin

3.Postgresql Einführung

4.Algebraische Transformation 5.Kardinalitätsschätzung

19

(20)

Recap:

Algebraische Transformation

20

(21)

Recap:

Algebraische Transformation

21

(22)

Recap:

Algebraische Transformation

22

(23)

Recap:

Algebraische Transformation

23

(24)

Recap:

Algebraische Transformation

24

(25)

Aufgabe 1:

Algebraische Transformation

 Gegeben: R(a,b,c) und S(c,d,e)

 Gesucht: Kostengünstigste Anfragepläne für folgende Anfragen

a. σ

b=3 ∧ e=4 ∧ c>10

(R ⋈ S)

b. π

a,d

(R ⋈ S)

25

d.h. möglichst kleine Zwischenergebnisse, also Selektionen und Projektionen so früh wie möglich

d.h. möglichst kleine Zwischenergebnisse, also Selektionen und Projektionen so früh wie möglich

→ π

a,d

a,c

(R) ⋈ π

c,d

(S))

→ π

a,d

( π

a,c

(R) ⋈ π

c,d

(S))

→ σ

c>10 ∧ b=3

(R) ⋈ σ

c>10 ∧ e=4

(S)

(26)

Themen

1.Nachbesprechung Hausaufgabe 3 2.Hybrid-Hashjoin

3.Postgresql Einführung

4.Algebraische Transformation 5.Kardinalitätsschätzung

26

(27)

Recap:

Kardinalitätsschätzung

27

(28)

Recap:

Kardinalitätsschätzung

28

(29)

Recap:

Kardinalitätsschätzung

29

(30)

Recap:

Kardinalitätsschätzung

30

Einfacher:

Sei T(R,X) die (geschätzte) Anzahl Tupel, die X erfüllen

→ T(S) = T(R,C1) + T(R,C2) – T(R,C1 AND C2)

(31)

Aufgabe 2:

Kardinalitätsschätzung

 Gegeben: R(a,b,c,d) und S(d,e)

T(R)=100; V(R,a)=100; V(R,b)=10; V(R,c)=1; V(R,d)=50 T(S)=500; V(S,d)=30; V(S,e)=100

 Gesucht: Geschätzte Ergebniskardinalität für folgende Anfragen a. σ

b=25

(R)

b. σ

c=30

(R)

c. σ

b=25 ∧ c=30

(R) d. σ

b>25

(R)

e. σ

a>30 ∧ b=10

(R) f. σ

b>25 ∧ b=11

(R) g. σ

b=25 ∨ d=13

(R)

31

T(R)/V(R,b)= 10 T(R)/V(R,b)= 10 T(R)/V(R,c) = 100 T(R)/V(R,c) = 100

T(R)/(V(R,b)  V(R,c)) = 10 T(R)/(V(R,b)  V(R,c)) = 10 T(R)/3 ≈ 33

T(R)/3 ≈ 33

T(R)/(3  V(R,b)) ≈ 3 T(R)/(3  V(R,b)) ≈ 3

0 (widersprüchliche Selektion) 0 (widersprüchliche Selektion)

T(R)/V(R,b) + T(R)/V(R,d) - T(R)/(V(R,b)  V(R,d))

= 11,8 ≈ 12

T(R)/V(R,b) + T(R)/V(R,d) - T(R)/(V(R,b)  V(R,d))

= 11,8 ≈ 12

T(R)  T(S) / max[V(R,d),V(S,d)] = 1000

T(R)  T(S) / max[V(R,d),V(S,d)] = 1000

Referenzen

ÄHNLICHE DOKUMENTE

- wie die verschiedenen Interessenvertretungen (Vereine, Quartiervereine) und verschiedenen Bevölkerungsgruppen (z.B. Strassenanwohnerlnnen) in die für sie bedeutsamen

IR streng monoton und in dann ist die Umkehrfkt.. diffbar

Bei einer Fistel handelt es sich in der Regel um eine mit Gewebe (Granulationsgewebe be- ziehungsweise Epithelgewebe) ausgekleidete Verbindung zwischen Körperhöhlen beziehungs-

Wie wird das sein in zehn Jah- ren oder noch später hier in unserer Region? Werden die Menschen noch Bargeld oder für solche Dinge nur noch ihr Smartphone nutzen? Werden wir

[r]

[r]

[r]

Kogel mit professionellen Auf- tritten und Medienarbeit behauptete, für Kommunika- tion und Transparenz eintreten zu wollen, hatte er auf eine Information selbst der direkten