 
                                WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #3 Anfragebearbeitung (Teil 1) WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 „Fahrplan“  Besprechung der Übungsaufgaben (kurz)  Logische Optimierung (prüfungsrelevant)  Äquivalenzen in der relationalen Algebra  Anwendung von Transformationsregeln  Physische Optimierung  Selektion  Matchings (binäre Zuordnungsoperationen: Join, Mengendurchschnitt, Mengendifferenz)  Gruppierung und Duplikatelimierung  Projektion und Vereinigung  Zwischenspeicherung  Kostenmodelle ...  Fazit und Ausblick Vorlesung #3 © Bojan Milijaš, 03.11.2004 Vorlesung #3 - Anfragebearbeitung (Teil 1) 2 Anfragebearbeitung WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18  Wegen Datentunabhängigkeit werden Anfragen in SQL auf sehr allgemein auf dem logischen Schema formuliert  Nun muss es eine Komponente in DBMS geben, die die Grenze zwischen der logischen und der physischen Ebene definiert und überbrückt  Anfrageoptimierung  Anfrageoptimierung wandelt eine abstrakte Abfrage in eine möglichst effiziente Implementierung – den Auswertungsplan – der dann kompiliert oder über einen Interpreter direkt gestartet wird  ... Kemper 8.2 © Bojan Milijaš, 03.11.2004 Vorlesung #3 - Anfragebearbeitung (Teil 1) 3 WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 © Bojan Milijaš, 03.11.2004 Vorlesung #3 - Anfragebearbeitung (Teil 1) 4 Anfragebearbeitung (2) WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18  Nach der Syntax- und der semantischen Analyse wird die Anfrage in einen Ausdruck der relationalen Algebra umgewandelt  Anfrageoptimierer (Optimizer) erzeugt eine Vielzahl von logisch äquivalenten Auswertungsplänen, die in Ihrer Ausführungsdauer (Kosten) unterschiedlich sind. (Kosten = mit Hilfe eines Kostenmodells geschätzte Ausführungsdauer). Auf Basis von „Kostenvoranschlägen“ wird der optimalen Plan ausgewählt.  Kostenmodelle basieren auf Schemainformationen und Statistiken über Relationen, Indexstrukturen und Verteilung der Attributwerte (Histogramme) © Bojan Milijaš, 03.11.2004 Vorlesung #3 - Anfragebearbeitung (Teil 1) 5 Logische Optimierung WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18  Sehr prüfungsrelevant !!!  Eine SQL Abfrage wird in einen Ausdruck der relationalen Algebra umgewandelt  Mit Hilfe von Transformationsregeln wird dieser Ausdruck in einen äquivalenten optimierten Ausdruck umgeformt und dann an die physische Optimierung weitergereicht  Zur besseren Veranschaulichung werden relational algebraische Ausdrücke als Auswertungsbäume dargestellt  ... Kemper 8.3- 8.27 © Bojan Milijaš, 03.11.2004 Vorlesung #3 - Anfragebearbeitung (Teil 1) 6 Logische Optimierung (Fazit) WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18  12 äquivalenzerhaltende Transformationsregeln der relationalen Algebra und deren Anwendung  Grundidee: die Regeln so anwenden, dass die Ausgaben der einzelnen Operatoren möglichst klein sind!  6 Heuristiken       Aufbrechen von Selektionen Selektionen nach unten schieben Selektionen + Kreuzprodukte  Joins Joins nach möglichst kleinen Zwischenergebnisse Einfügen von Projektionen Projektionen nach unten schieben © Bojan Milijaš, 03.11.2004 Vorlesung #3 - Anfragebearbeitung (Teil 1) 7 Physische Optimierung WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18  Für einen logischen Algebraoperatoren kann es mehrere unterschiedliche Realisierungen d.h. physische Operatoren geben  Indexe oder Vorsortierung spielen bei der Wahl der Realisierung eine wichtige Rolle  Physische Operatoren werden als „Iteratoren“ dargestellt mit Operationen open, next, close, cost und size  Keine Zwischenspeicherung der Ergebnisse notwendig, Pipelining möglich  Kemper 8.27 – 8.127 © Bojan Milijaš, 03.11.2004 Vorlesung #3 - Anfragebearbeitung (Teil 1) 8 Physische Optimierung (Fazit) WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18  Iteratoren  Selektion, Matching, Gruppierung und Duplikateliminierung, Projektion und Vereinigung, Zwischenspeicherung  3 prinzipielle Methoden  Brute Force (sequentiell, Nested Loop Join)  Ausnutzung der Sortierung (Merge Join)  Ausnutzung von Indexstrukturen und Hashing (Index Join, Hash Join)  Sortierung von Zwischenergebnissen muss wegen Hauptspeichermangels als Mergesort implemetiert werden, wobei mehrere Läufe (Runs) einzeln sortiert und gemischt werden. © Bojan Milijaš, 03.11.2004 Vorlesung #3 - Anfragebearbeitung (Teil 1) 9 Ausblick Vorlesung #4 WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18  Physische Optimierung  Kostenmodelle Fortsetzung  Tuning  Transaktionsverwaltung     Definition Anforderungen Operationen (Begin, Commit, Abort) ACID Paradigma (Atomicity, Consistency, Isolation, Durability)  in SQL © Bojan Milijaš, 03.11.2004 Vorlesung #3 - Anfragebearbeitung (Teil 1) 10 WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #3 Ende