12
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R 1.007 Vorlesung #9 Anfragebearbeitung

WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R 1.007 Vorlesung #9 Anfragebearbeitung

Embed Size (px)

Citation preview

Page 1: WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R 1.007 Vorlesung #9 Anfragebearbeitung

WS 2013/14Datenbanksysteme

Do 17:00 – 18:30R 1.007

Vorlesung #9

Anfragebearbeitung

Page 2: WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R 1.007 Vorlesung #9 Anfragebearbeitung

WS 2013/14Datenbanksysteme

Do 17:00 – 18:30R 1.007

© Bojan Milijaš, 28.11.2013

„Fahrplan“

Logische Optimierung (prüfungsrelevant !!!) Äquivalenzen in der relationalen Algebra Anwendung von Transformationsregeln

Fazit und Ausblick Vorlesung #10

Vorlesung #9 - Anfragebearbeitung

Page 3: WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R 1.007 Vorlesung #9 Anfragebearbeitung

WS 2013/14Datenbanksysteme

Do 17:00 – 18:30R 1.007

© Bojan Milijaš, 28.11.2013

SQL Abfrage + F10

Vorlesung #9 - Anfragebearbeitung

Page 4: WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R 1.007 Vorlesung #9 Anfragebearbeitung

WS 2013/14Datenbanksysteme

Do 17:00 – 18:30R 1.007

© Bojan Milijaš, 28.11.2013

Anfragebearbeitung

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

Vorlesung #9 - Anfragebearbeitung

Page 5: WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R 1.007 Vorlesung #9 Anfragebearbeitung

WS 2013/14Datenbanksysteme

Do 17:00 – 18:30R 1.007

© Bojan Milijaš, 28.11.2013 Vorlesung #9 - Anfragebearbeitung

Page 6: WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R 1.007 Vorlesung #9 Anfragebearbeitung

WS 2013/14Datenbanksysteme

Do 17:00 – 18:30R 1.007

© Bojan Milijaš, 28.11.2013

Anfragebearbeitung (2)

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)

Vorlesung #9 - Anfragebearbeitung

Page 7: WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R 1.007 Vorlesung #9 Anfragebearbeitung

WS 2013/14Datenbanksysteme

Do 17:00 – 18:30R 1.007

© Bojan Milijaš, 28.11.2013

Logische Optimierung

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

Vorlesung #9 - Anfragebearbeitung

Page 8: WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R 1.007 Vorlesung #9 Anfragebearbeitung

WS 2013/14Datenbanksysteme

Do 17:00 – 18:30R 1.007

© Bojan Milijaš, 28.11.2013

Logische Optimierung(Fazit) 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

Vorlesung #9 - Anfragebearbeitung

Page 9: WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R 1.007 Vorlesung #9 Anfragebearbeitung

WS 2013/14Datenbanksysteme

Do 17:00 – 18:30R 1.007

© Bojan Milijaš, 28.11.2013

Logische Optimierung(Fazit) 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

Vorlesung #9 - Anfragebearbeitung

Page 10: WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R 1.007 Vorlesung #9 Anfragebearbeitung

WS 2013/14Datenbanksysteme

Do 17:00 – 18:30R 1.007

© Bojan Milijaš, 28.11.2013

Physische Optimierung

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

Vorlesung #9 - Anfragebearbeitung

Page 11: WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R 1.007 Vorlesung #9 Anfragebearbeitung

WS 2013/14Datenbanksysteme

Do 17:00 – 18:30R 1.007

© Bojan Milijaš, 28.11.2013

Ausblick Vorlesung #10

Physische Datenorganisation Speichermedien und Speicherhierarchien Hauptspeicher, Puffer-Verwaltung Index-Strukturen

ISAM B-Bäume

Hashing Clustering

Physische Datenorganisation in SQL

Vorlesung #9 - Anfragebearbeitung

Page 12: WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R 1.007 Vorlesung #9 Anfragebearbeitung

WS 2013/14Datenbanksysteme

Do 17:00 – 18:30R 1.007

Vorlesung #9

Ende