Vorlesung Datenbanksysteme vom 18.10.2004 Anfragebearbeitung Logische Optimierung Physische Optimierung.

Slides:



Advertisements
Ähnliche Präsentationen
Kapitel 8 Anfragebearbeitung
Advertisements

Anzahl der ausgefüllten und eingesandten Fragebögen: 211
Kapitel 8 Anfragebearbeitung Logische Optimierung Physische Optimierung Kostenmodelle Tuning.
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil3.
Die Projektgruppe heißt Sie herzlichst willkommen
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Telefonnummer.
Kapitel 8 Anfragebearbeitung
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2011.
1 JIM-Studie 2010 Jugend, Information, (Multi-)Media Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
= = = = 47 = 47 = 48 = =
Statistiken und Tabellen
Lehrstuhl Informatik III, DatenbanksystemeMartin Wimmer Übung zu Architektur und Implementierung von Datenbanksystemen 1 Implementierungen des Join- Operators.
EF: Standards + H2O red = H2O.
Rechneraufbau & Rechnerstrukturen, Folie 2.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 2.
Mh9S170Nr6 a. x1= –9; x2 = 1 b. x1= –4; x2 = 1 c. x1= 1; x2 = 2 d. leer e. x1= –15; x2 = 4,2 f. x1= –3,53; x2 = 1,28 g. leer h. x1= 0,2; x2 = 2 i. x1=
Internet facts 2008-II Graphiken zu dem Berichtsband AGOF e.V. September 2008.
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
Differentielles Paar UIN rds gm UIN
Prof. Dr. Bernhard Wasmayr
Studienverlauf im Ausländerstudium
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Prof. Dr. Bernhard Wasmayr VWL 2. Semester
AWA 2007 Natur und Umwelt Natürlich Leben
Zerlegung von Quadraten und ????
Rechneraufbau & Rechnerstrukturen, Folie 12.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 12.
Prof. Dr. Günter Gerhardinger Soziale Arbeit mit Einzelnen und Familien Übersicht über die Lehrveranstaltung Grundlegende Bestimmungsfaktoren der Praxis.
20:00.
Zusatzfolien zu B-Bäumen
WIRTSCHAFTSLAGE NOCH SCHWIERIG
In der Schule.
AGOF facts & figures: Branchenpotenziale im Internet Q4 2013: Entertainment Basis: internet facts / mobile facts 2013-II.
Eine Einführung in die CD-ROM
Vorlesung Datenbanksysteme vom Anfragebearbeitung Kostenmodelle Tuning.
GBI Genios Wiso wiso bietet Ihnen das umfassendste Angebot deutsch- und englischsprachiger Literatur für die Wirtschafts- und Sozialwissenschaften. Wir.
Dokumentation der Umfrage
für Weihnachten oder als Tischdekoration für das ganze Jahr
1 Ein kurzer Sprung in die tiefe Vergangenheit der Erde.
Wir üben die Malsätzchen
Syntaxanalyse Bottom-Up und LR(0)
1 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.
Addieren und Subtrahieren von Dezimalzahlen
Messung der Ionisierungsenergie von Wasserstoff
Das entscheidende Kriterium ist Schönheit; für häßliche Mathematik ist auf dieser Welt kein beständiger Platz. Hardy.
Der Ablauf eines Clear Rex Klärzyklus
PROCAM Score Alter (Jahre)
Vorlesung Datenbanksysteme vom Physische Datenorganisation
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Geometrische Aufgaben
Symmetrische Blockchiffren DES – der Data Encryption Standard
Retuschen.ppt Die folgende Schau zeigt die Möglichkeiten, mit PhotoDraw Digitalbilder zu retuschieren. Vergleichen Sie jeweils zwei Bildpaare durch fleissiges.
Zahlentheorie und Zahlenspiele Hartmut Menzer, Ingo Althöfer ISBN: © 2014 Oldenbourg Wissenschaftsverlag GmbH Abbildungsübersicht / List.
MINDREADER Ein magisch - interaktives Erlebnis mit ENZO PAOLO
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Parkplatz-Orga Diese Version ist vom finale Version!
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Kamin- und Kachelöfen in Oberösterreich
Zusammengestellt von OE3DSB
Folie Beispiel für eine Einzelauswertung der Gemeindedaten (fiktive Daten)
Technische Frage Technische Frage Bitte löse die folgende Gleichung:
Unternehmensbewertung Thomas Hering ISBN: © 2014 Oldenbourg Wissenschaftsverlag GmbH Abbildungsübersicht / List of Figures Tabellenübersicht.
Forschungsprojekt Statistik 2013 „Jugend zählt“ – Folie 1 Statistik 2013 „Jugend zählt“: Daten zur Arbeit mit Kindern und Jugendlichen.
AGOF facts & figures: Branchenpotenziale im Internet Q2 2014: Parfum & Kosmetik Basis: internet facts / mobile facts 2014-I.
Folie Einzelauswertung der Gemeindedaten
Datum:17. Dezember 2014 Thema:IFRS Update zum Jahresende – die Neuerungen im Überblick Referent:Eberhard Grötzner, EMA ® Anlass:12. Arbeitskreis Internationale.
Einführung in die Volkswirtschaftslehre, Mikroökonomie und Wettbewerbspolitik Lothar Wildmann ISBN: © 2014 Oldenbourg Wissenschaftsverlag.
Sehen, Hören, Schmecken: wenn uns unsere Sinne täuschen
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Vorlesung Datenbanksysteme vom Anfragebearbeitung 2  Architektur eines DBMS  Logische Optimierung  Physische Optimierung  Kostenmodelle.
 Präsentation transkript:

Vorlesung Datenbanksysteme vom Anfragebearbeitung Logische Optimierung Physische Optimierung

2 Architektur eines DBMS DML-CompilerDDL-Compiler Abfrageoptimierung Datenbankmanager Schemaverwaltung Dateiverwaltung LogdateienIndexeDatenbasisData Dictionary Mehrbenutzersynchronisation Fehlerbehandlung Interactive AbfrageAPI/PräcompilerVerwaltungswerkzeug

3 Pull-based Query Evaluation open next Return Ergebnis

4 Pipelining vs. Pipeline-Breaker RS... T

5 Pipeline-Breaker Unäre Operationen sort Duplikatelimination (unique,distinct) Aggregatoperationen (min,max,sum,...) Binäre Operationen Mengendifferenz Je nach Implementierung Join Union

6 Beispiele: Op6Employee A DNO = Dnumber Department Op7 Department A MgrSSN = SSN Employee Zu betrachten allgemein: Implementierungs-Varianten für R A A=B S JOIN - Implementierung

7

8 J1 nested (inner-outer) loop brute force-Algorithmus foreach r R foreach s S if s.B = r.A then Res := Res (r s) Nested Loop Join

9

10 Block-Nested Loop Join- Algorithmus m-k R k S kkkkk

11 J2 Zugriffsstruktur auf S Index Nested Loop Join in jedem Durchlauf von R werden nur die in S qualifizierenden Tupel gelesen dazu ist ein Index auf B erforderlich foreach r R foreach s S[B=r.A] Res := Res (r s) Index Nested Loop Join

12

13 J3 Sort-Merge Join erfordert zwei Sortierungen 1. R muss nach A und 2. S nach B sortiert sein sehr effizient falls A oder B Schlüsselattribut ist, wird jedes Tupel in R und S nur genau einmal gelesen (wenn Duplikate eliminiert werden) Sort-Merge-Join R S Ergebnis:

14

15 Mengendurchschnitt mit einem Hash/Partitionierungs-Algorithmus R S R S Nested Loop: O(N 2 ) Sortieren: O(N log N) Partitionieren und Hashing

16 Mengendurchschnitt mit einem Hash/Partitionierungs-Algorithmus R S R S R Mod 3

17 Mengendurchschnitt mit einem Hash/Partitionierungs-Algorithmus R S R S R S Mod 3

18 Mengendurchschnitt mit einem Hash/Partitionierungs-Algorithmus R S R S R S Mod 3

19 Mengendurchschnitt mit einem Hash/Partitionierungs-Algorithmus R S R S Mod 5 Build- Phase Hashtabelle

20 Mengendurchschnitt mit einem Hash/Partitionierungs-Algorithmus R S = {3, } R S Mod 5 Probe- Phase

21 Mengendurchschnitt mit einem Hash/Partitionierungs-Algorithmus R S = {3, } R S Mod 5 Build-Phase 2. Partition

22 Mengendurchschnitt mit einem Hash/Partitionierungs-Algorithmus R S = {3, } R S Mod 5 Probe-Phase 2. Partition

23 Mengendurchschnitt mit einem Hash/Partitionierungs-Algorithmus R S = {3, 13 } R S Mod 5 Probe-Phase 2. Partition

24 Mengendurchschnitt mit einem Hash/Partitionierungs-Algorithmus R S R S Mod 3 R S = {3, 13, 2, 44, 17 }

25 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 Hintergrundspeicher (abhängig von der Größe der Relationen) Zu verbindende Tupel befinden sich dann im selben Bucket Wird (nach praktischen Tests) nur vom Merge-Join geschlagen, wenn die Relationen schon vorsortiert sind Hash-Join

26 Hash-Join RS r1r1 5 s1s1 5 r4r4 5 s4s4 5 10s3s3 r2r2 7 s2s2 7 r3r3 8 h(A)h(A)h(B ) Bucket 3 Bucket 2Bucket 1

27 Normaler blockierender Hash- Join mit Überlauf: Partitionieren Send R Send S receive P1 P2P3 Partition h(R.A) P1 P2 P3 Partition h(S.A) receive

28 Normaler blockierender Hash-Join mit Überlauf: Build/Probe Send R Send S P1 P2P3 Partition h(R.A) P1 P2 P3 build Hashtabelle probe Lade Blöcke von P1

29

30 Nested-Loop JoinHash Join

31

32 Hybrid Hash-Join Fange so an, als wenn der Build-Input S vollständig in den Hauptspeicher passen würde Sollte sich dies als zu optimistisch herausstellen, verdränge eine Partition nach der anderen aus dem Hauptspeicher Mindestens eine Partition wird aber im Hauptspeicher verbleiben Danach beginnt die Probe-Phase mit der Relation R Jedes Tupel aus R, dessen potentielle Join-Partner im Hauptspeicher sind, wird sogleich verarbeitet Hybrid Hash-Join ist dann besonders interessant, wenn der Build-Input knapp größer als der Hauptspeicher ist Kostensprung beim normalen Hash-Join Wird oft auch Grace-Hash-Join genannt, weil er für die Datenbankmaschine Grace in Japan erfunden wurde

33 Hybrid Hash-Join RS P1 P2 P3 Hashtabelle

34 Hybrid Hash-Join RS P3 P1 P2 Hashtabelle

35 Hybrid Hash-Join RS P2 P3 P1 Hashtabelle

36 Hybrid Hash-Join R P2P3 Partition h(R.A) P2 P3 Hashtabelle probe Wenn r zur ersten Partition gehört

False drops 6 Bit Join mit Hashfilter (Bloom-Filter) R1 R2 partitionieren S1 S2 partitionieren

38.. Join mit Hashfilter (False Drop Abschätzung) Wahrscheinlichkeit, dass ein bestimmtes Bit j gesetzt ist W. dass ein bestimmtes r R das Bit setzt: 1/b W. dass kein r R das Bit setzt: (1-1/b) |R| W. dass ein r R das Bit gesetzt hat: 1- (1-1/b) |R| j b-1

39 Vergleich: Sort/Merge-Join versus Hash-Join R run S merge R partition S

40 Illustration: Externes Sortieren

41 Illustration: Externes Sortieren

42 Illustration: Externes Sortieren

43 Illustration: Externes Sortieren sort

44 Illustration: Externes Sortieren sort run

45 Illustration: Externes Sortieren run

46 Illustration: Externes Sortieren sort run

47 Illustration: Externes Sortieren run

48 Illustration: Externes Sortieren sort run

49 Illustration: Externes Sortieren merge run

50 Illustration: Externes Sortieren merge run

51 Illustration: Externes Sortieren merge run

52 Illustration: Externes Sortieren merge run

53 Illustration: Externes Sortieren merge run

54 Illustration: Externes Sortieren run

55 Mehrstufiges Mischen / Merge

56 Replacement Selection während der Run-Generierung Ersetze Array durch Einen Heap

57 Replacement Selection während der Run-Generierung Heap 97

58 Replacement Selection während der Run-Generierung Heap

59 Replacement Selection während der Run-Generierung Heap

60 Replacement Selection während der Run-Generierung Heap

61 Replacement Selection während der Run-Generierung Heap

62 Replacement Selection während der Run-Generierung Heap

63 Replacement Selection während der Run-Generierung Heap

64 Replacement Selection während der Run-Generierung Heap

65 Replacement Selection während der Run-Generierung Heap

66 Replacement Selection während der Run-Generierung Heap

67 Replacement Selection während der Run-Generierung Heap

68 Replacement Selection während der Run-Generierung Heap

69 Replacement Selection während der Run-Generierung Heap Nächster Run, kleiner als 17

70 Replacement Selection während der Run-Generierung Heap Nächster Run, kleiner als 17

71 Replacement Selection während der Run-Generierung Heap

72 Replacement Selection während der Run-Generierung Heap

73 Replacement Selection während der Run-Generierung Heap

74 Replacement Selection während der Run-Generierung Heap

75 Replacement Selection während der Run-Generierung Heap

76 Replacement Selection während der Run-Generierung Heap

77 Replacement Selection während der Run-Generierung Heap

78 Replacement Selection während der Run-Generierung Heap

79 Replacement Selection während der Run-Generierung Heap

80 Replacement Selection während der Run-Generierung Heap

81 Implementierungs-Details Natürlich darf man nicht einzelne Datensätze zwischen Hauptspeicher und Hintergrundspeicher transferieren Jeder Round-Trip kostet viel Zeit (ca 10 ms) Man transferiert größere Blöcke Mindestens 8 KB Größe Replacement Selection ist problematisch, wenn die zu sortierenden Datensätze variable Größe habe Der neue Datensatz passt dann nicht unbedingt in den frei gewordenen Platz, d.h., man benötigt eine aufwendigere Freispeicherverwaltung Replacement Selection führt im Durchschnitt zu einer Verdoppelung der Run-Länge Beweis findet man im [Knuth] Komplexität des externen Sortierens? O(N log N) ??

82 Übersetzung der logischen Algebra RS A R.A=S.B RS HashJoin R.A=S.B RS MergeJoin R.A=S.B [Sort R.A ][Sort S.B ] R S IndexJoin R.A=S.B [Hash S.B | Tree S.B ] R S NestedLoop R.A=S.B [Bucket]

83 Übersetzung der logischen Algebra P R Select P R IndexSelect P R

84 Übersetzung der logischen Algebra l R [NestedDup] Project l R [SortDup] Sort Project l R [IndexDup] [Hash | Tree] Project l R

85 Ein Auswertungsplan Ein Auswer- tungsplan

86 Wiederholung der Optimierungsphasen 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 sh v p p.Name = ´Sokrates´ and... s.Semester

87 s h v p A s.MatrNr=h.MatrNr A p.PersNr=v.gelesenVon s.Semester p.Name = ´Sokrates´ A v.VorlNr=h.VorlNr