Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Informationsintegration Dynamische Programmierung 8.12.2005 Felix Naumann.

Ähnliche Präsentationen


Präsentation zum Thema: "Informationsintegration Dynamische Programmierung 8.12.2005 Felix Naumann."—  Präsentation transkript:

1 Informationsintegration Dynamische Programmierung Felix Naumann

2 Felix Naumann, VL Informationsintegration, WS 05/062 Überblick Dynamische Programmierung (DP) zur Anfrageoptimierung Grundlagen der DP Das Grundproblem der Anfrageoptimierung DP für Anfrageoptimierung DP für verteilte DBMS

3 Felix Naumann, VL Informationsintegration, WS 05/063 Richard Bellman 1920 – 1984 PhD Princeton (3 Monate) Los Alamos ( ) 1953 Rand Corporation: Erfindung der Dynamischen Programmierung Viele andere Beiträge zur Mathematik Bellman-Ford Algorithmus

4 Felix Naumann, VL Informationsintegration, WS 05/064 The Stagecoach story some 150 years ago there was a salesman travelling west by stagecoach.. AJ I H GD FC EB Quelle: Folien Ioana Popescu San Francisco New York

5 Felix Naumann, VL Informationsintegration, WS 05/065 Versicherungskosten AJ I H GD FC EB Quelle: Folien Ioana Popescu Frage: Welches ist der beste (billigste) Weg?

6 Felix Naumann, VL Informationsintegration, WS 05/066 Billigster Weg – Greedy Suche AJ I H GD FC EB Quelle: Folien Ioana Popescu Greedy: A-B-F-I-J = 13 Frage: Gibt es einen besseren Weg?

7 Felix Naumann, VL Informationsintegration, WS 05/067 Billigster Weg – Vollständige Suche AJ I H GD FC EB Quelle: Folien Ioana Popescu Besser: A-D-F-I-J = 11 Anzahl der möglichen Wege: 3 x 3 x 2 = 18

8 Felix Naumann, VL Informationsintegration, WS 05/068 The Stagecoach Solution Idee der Dynamischen Programmierung Hier: Rückwärtsberechnung Voraussetzung: Prinzip der Optimalität Teilplan eines optimalen Plans ist ebenfalls optimal Idee Ausgehend vom Zielknoten stufenweise rückwärts beste Teilpfade berechnen F(X) := minimale Kosten von X nach J Quelle: Folien Ioana Popescu

9 Felix Naumann, VL Informationsintegration, WS 05/069 Billigster Weg - DP AJ I H GD FC EB Quelle: Folien Ioana Popescu F(X) : = min Kosten von X nach J F(J)=0 F(I)=4 F(H)=3 F(G)=6 F(F)=7 F(E)=4 F(D)=8 F(C)=7 F(B)=11 F(A)=11

10 Felix Naumann, VL Informationsintegration, WS 05/0610 Dynamische Programmierung Optimaler Algorithmus Schwierigkeiten Prinzip der Optimalität muss gelten. Aufteilung des Problems in Teilprobleme Aufwand kann exponentiell sein Klassische Anwendungen Knapsack Problem Traveling Salesman Problem Maschinenbelegung Transportproblem

11 Felix Naumann, VL Informationsintegration, WS 05/0611 Überblick Dynamische Programmierung (DP) zur Anfrageoptimierung Grundlagen der DP Das Grundproblem der Anfrageoptimierung DP für Anfrageoptimierung DP für verteilte DBMS

12 Felix Naumann, VL Informationsintegration, WS 05/0612 Architektur zur Anfragebearbeitung Parser Anfrage- umschreibung Anfrage- optimierung Code Generierung Anfragebearbeitung (Engine) Katalog/ Metadaten Anfrage Daten Anfrage- ergebnis Syntax und etwas Semantik Erzeugt Anfragegraph Logische Optimierung (unabhängig von System und Konfiguration): Entschachtelung, redundante Prädikate,... Optimierung für System und Konfiguration: Indices, Joinreihenfolge, Selektion der Datenquelle Wandelt Plan (Baum) in ausführbaren Plan (Code) um. Schema, Statistik, Partitionierung, Lage der Daten,...

13 Felix Naumann, VL Informationsintegration, WS 05/0613 Anfrageoptimierung Suchraum Alle gültigen Anfragepläne Kostenmodell Join-Operator Netzwerkkosten Optimierungsproblem Finde im Suchraum den kostenoptimalen Anfrageplan.

14 Felix Naumann, VL Informationsintegration, WS 05/0614 Anfrageplanung Heuristische Einschränkung des Suchraums Keine Kreuzprodukte Außer explizite Kreuzprodukte in der Anfrage Prädikate so früh wie möglich Nur links-tiefe (left-deep) Bäume RS T U RS T U RS T U Pipelined Execution BushyZig-Zag Left-Deep

15 Felix Naumann, VL Informationsintegration, WS 05/0615 Überblick Dynamische Programmierung (DP) zur Anfrageoptimierung Grundlagen der DP Das Grundproblem der Anfrageoptimierung DP für Anfrageoptimierung DP für verteilte DBMS

16 Felix Naumann, VL Informationsintegration, WS 05/0616 Dynamische Programmierung: Optimierung im System-R A.k.a. Selinger-style query optimization Der klassische Artikel zur Anfrageoptimierung: [SAC+79] Ursprünglich im IBM System-R Heutzutage weit verbreitet Grundidee: Nur Left-deep Anfragebäume D.h. nur Joinreihenfolge interessant Innere und äußere Relation unberücksichtigt Bottom-up Generierung von Anfrageplänen Dynamische Programmierung (DP) Zusätzlich: interesting orders (interessante Sortierungen) Zusätzlich: interesting sites (interessante Ausführungsorte) Literatur mit Beispiel: [GMUW00] Quelle: u.a. Folien Prof. Chen Li

17 Felix Naumann, VL Informationsintegration, WS 05/0617

18 Felix Naumann, VL Informationsintegration, WS 05/0618 Bottom-up Anfrageplangenerierung Grundannahme 1: Nach dem Join über k Relationen ist die Join-Methode die k+1te Relation um hinzuzujoinen unabhängig von den vorigen Join- Methoden. Joinmethoden: Nested Loops, Hashjoin, Sort-Merge Join usw. Grundannahme 2: Jeder Teilplan eines optimalen Plans ist ebenfalls optimal. Entspricht dem Prinzip der Optimalität: Wenn sich zwei Pläne nur in einem Teilplan unterscheiden, so ist der Plan mit dem besseren Teilplan auch der bessere Gesamtplan Bottom-up Anfrageplangenerierung: Berechne die optimalen Pläne für den Join über (jede Kombination von) k Relationen Suboptimale Pläne werden verworfen Erweitere diese Pläne zu optimalen Plänen für k+1 Relationen. usw. bis k = n

19 Felix Naumann, VL Informationsintegration, WS 05/0619 Dynamische Programmierung {} {R} {S} {T} {U} {R S} {R T} {R U} {S T} {S U} {T U} {R S T} {R S U} {S T U} {R T U} {R S T U}

20 Felix Naumann, VL Informationsintegration, WS 05/0620 DP – Grundidee für Anfrageoptimierung Für jede Kombination merke (in einer Hilfstabelle): Geschätzte Größe des Ergebnisses (Kardinalität) Geschätzte minimale Kosten Hier zur Vereinfachung: Größe des Zwischenergebnisses Joinreihenfolge, die diese Kosten verursacht (= optimaler Teilplan) Induktion über Anzahl der Relationen im Plan N=1: Für jede Relation Kardinalität = Kardinalität der Relation Kosten = 0 (zur Vereinfachung) Joinreihenfolge: n/a N=2: Für jedes Relationenpaar R, S Kardinalität = |R| x |S| x sf Kosten = 0 Joinreihenfolge: kleinere Relation links Clou: R und S jeweils mit besten access-path N=3: Für jedes Tripel R, S, T Clou: Nur bestes Relationenpaar aus dem Tripel wird um dritte Relation ergänzt...

21 Felix Naumann, VL Informationsintegration, WS 05/0621 DP – Beispiel R ST U Anfrage über Relationen R, S, T, U. Vier Join-Bedingungen Anfragegraph u.U. auch IndexScan(...)

22 Felix Naumann, VL Informationsintegration, WS 05/0622 DP – Beispiel R ST U Kreuzprodukte nicht berücksichtigen! X X Besser als z.B. S (T R) oder (R S) T

23 Felix Naumann, VL Informationsintegration, WS 05/0623 DP – Beispiel R ST U Anfragegraph Optimaler (left- deep) Plan Bisher unberücksichtigt: Wahl des Join-Algorithmus

24 Felix Naumann, VL Informationsintegration, WS 05/0624

25 Felix Naumann, VL Informationsintegration, WS 05/0625 DP - interesting orders (Interessante Sortierung) WdH.: Prinzip der Optimalität: Wenn sich zwei Pläne nur in einem Teilplan unterscheiden, so ist der Plan mit dem besseren Teilplan auch der bessere Gesamtplan. Gegenbeispiel: R(A,B) S(A,C) T(A,D) Bester (lokaler) Plan für R S: Hash-Join Best (globaler) Gesamtplan: 1. Sort-merge Join über R und S 2. Sort-merge Join mit T Warum könnte dies so sein? Das Zwischenergebnis von R sort-merge S ist nach Join-Attribut A sortiert. Dies ist eine interesting order, die später ausgenutzt werden kann: Spätere sort-merge Joins Gruppierung ( GROUP BY ) Sortierung ( ORDER BY ) Eindeutige Tupel ( DISTINCT )

26 Felix Naumann, VL Informationsintegration, WS 05/0626 DP - interesting orders (Interessante Sortierung) Bei Auswahl des besten Teilplans: Kostenvergleich genügt nicht. Es gibt keine vollständige Ordnung der Teilpläne nach Kosten. Auch Sortierungen müssen berücksichtigt werden. Lösung: Für jede Kombination von Relationen, speichere mehrere Sortiervarianten: 1. Nach jeder Variante der beteiligten Teilpläne 2. Die leere Sortierung DP Tabellen werden breiter. Merke außerdem Join- und Sortieroperationen, die diese Sortierung erzeugen.

27 Felix Naumann, VL Informationsintegration, WS 05/0627 DP – Algorithmus Quelle: [Ko00] Alle Zugriffspläne für jede Relation Schlechtere Zugriffs- pläne verwerfen Achtung: Nicht left-deep!

28 Felix Naumann, VL Informationsintegration, WS 05/0628 Überblick Dynamische Programmierung (DP) zur Anfrageoptimierung Grundlagen der DP Das Grundproblem der Anfrageoptimierung DP für Anfrageoptimierung DP für verteilte DBMS

29 Felix Naumann, VL Informationsintegration, WS 05/0629 DP in verteilten Systemen Entscheidungen des Optimierers Zugriffpfade auf Relationen Table-scan, Index-scan Joinreihenfolge Art der Join-Berechnung Nested loops, sort-merge usw. Neu: Ort der Join-Berechnung Am Speicherort der inneren Relation / des Zwischenergebnisses Am Speicherort der äußere Relation / des Zwischenergebnisses Am Ort der Weiterverarbeitung Anderswo, z.B. Ort der schnellsten CPU

30 Felix Naumann, VL Informationsintegration, WS 05/0630 DP in verteilten Systemen Berücksichtigung (und Repräsentation) mehrerer Speicherorte mehr Zugrifspläne Berücksichtigung (und Repräsentation) des Ausführungsortes des Joins interesting order und interesting site mehr Zugrifspläne Am Ende gegebenenfalls noch ship Operator anfügen.

31 Felix Naumann, VL Informationsintegration, WS 05/0631 Literatur Das grundlegende Paper [SAC+79] Patricia G. Selinger, Morton M. Astrahan, Donald D. Chamberlin, Raymond A. Lorie, Thomas G. Price: Access Path Selection in a Relational Database Management System. SIGMOD Conference 1979: Englisches Lehrbuch [GMUW00] Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer Widom: Database System Implementation Prentice-Hall 2000 Weiteres [Ko00] The State of the Art in Distributed Query Processing, Donald Kossmann, ACM Computing Surveys 32(4), pages (Link auf WWW) [OK00] Kiyoshi Ono, Guy M. Lohman: Measuring the Complexity of Join Enumeration in Query Optimization. VLDB 1990: [HFLP89] Laura M. Haas, Johann Christoph Freytag, Guy M. Lohman, Hamid Pirahesh: Extensible Query Processing in Starburst. SIGMOD Conference 1989: [Graefe93] Goetz Graefe: Query Evaluation Techniques for Large Databases. ACM Comput. Surv. 25(2): (1993)


Herunterladen ppt "Informationsintegration Dynamische Programmierung 8.12.2005 Felix Naumann."

Ähnliche Präsentationen


Google-Anzeigen