Datenbanken Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Karsten Martiny (Übungen)

Slides:



Advertisements
Ähnliche Präsentationen
Folien 2-5, 7-8 © Prof. Dr. Manfred Rössle (FH Aalen)
Advertisements

Informationsintegration Dynamische Programmierung
Bauinformatik II Softwareanwendungen 1
Kapitel 3: Das Relationenmodell
XINDICE The Apache XML Project Name: Jacqueline Langhorst
SQL als Abfragesprache
MySQL Der Einstieg.
Übung Datenbanksysteme SQL-Anfragen (2)
Access 2000 Datenbanken.
SQL in Visual FoxPro. © 1999 TMN-Systemberatung GmbH SQL Historie n SQL - Structured Query Language n In den 70er Jahren von IBM entwickelt n 1986 zum.
... und alles was dazugehört
EXPLAIN PLAN - Erste Schritte April 2004EXPLAIN PLAN2 Was fehlt noch? Konkretes Beispiel für einen Plan.
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #6 SQL (Teil 3)
WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #9 Physische Datenorganisation.
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #8 Anfragebearbeitung.
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #9 Anfragebearbeitung.
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #9 Anfragebearbeitung (Teil 1)
Datenbanksysteme für hörer anderer Fachrichtungen
Einführung in Datenbankmodellierung und SQL
Freiwillige Feuerwehr der Stadt Perg
Vorlesung #10 Physische Datenorganisation
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 Anfragebearbeitung.
SQL - Structured Query Language AIFB SS (1/9) Join-Operationen in SQL-92(1/9) Syntax einer Join-Operation: join-op := CROSS JOIN | [NATURAL]
Structured Query Language
WS 2004/2005 Datenbanken II - 5W Mi 17:00 – 18:30 G 3.18 Vorlesung #3 Anfragebearbeitung (Teil 1)
11 Verwaltung von Abhängigkeiten. Ziele Am Ende dieser Lektion verfügen Sie über die folgenden Kenntnisse: Überwachen prozeduraler Abhängigkeiten Effekte.
11 Zugriffskontrolle (Access Control) Ziele Privilegien Rollen GRANT und REVOKE Befehl Privilegien Rollen GRANT und REVOKE Befehl.
Verknüpfung von Tabellen
Datenbank System (DBS) - Warum?
Vorlesung Datenbanksysteme vom Anfragebearbeitung  Logische Optimierung.
Vorlesung Datenbanksysteme vom : Wiederholung Anfragebearbeitung  Logische Optimierung.
Datenbanken abfragen mit SQL
Institut für Informationssysteme
1 StatiX: Making XML Count J.Freire, J.R.Haritsa, M.Ramanath, P.Roy, J.Siméon: StatiX: Making XML Count ACM SIGMOD, June 2002 Ann Früchtl
DOAG Regionaltreffen NRW 10. Juni 2003 TDS Deutschland AG & Co. oHG PIPELINED FUNCTIONS Autor: Karl-Otto Spiecker Vortrag: Bernd Löschner.
By Thorsten Zisler 1 SQL Datenbank Anbindung an den Supervisor.
Wohnungssuche Mobiles georeferenziertes Informationssystem am Beispiel der aktiven und passiven Wohnungssuche Michael Raber.
© CSP GmbH & Co. KG 2005 Einleitung HerausforderungenLösung Architektur Demonstration Langzeitarchivierung für Oracle Datenbanken Stefan Brandl, Dipl.-Inf.,
Von der Bedarfszuweisung zur Schlüsselzuweisung Die neue Finanzbeziehung zwischen Bistum und Kirchengemeinden.
Key-Value Paare (KVP) - Metadaten für Kanäle speichern und nach MDF4 exportieren PM (V1.0)
B-Bäume & relationales Datenbankmodell von R.Bayer und E.F. Codd Thema Bedeutung des relationalen Datenbankmodells von Edgar Frank Codd und die Entwicklung.
Datenbanken Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Karsten Martiny (Übungen)
IS: Datenbanken, © Till Hänisch 2000 Relationenalgebra Die mathematische Grundlage von relationalen Datenbanken.
DOAG SID Data Warehouse
Touchability of Touchscreens
Institut für Informationssysteme
Übung Datenbanksysteme I SQL
Institut für Informationssysteme
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Vorlesung #10 Physische Datenorganisation
Darstellung der Relationenalgebra als Programmiersprache
WS 2001/2002 Mehrbenutzerzugriff auf GIS-Daten
Logisches Datenmodell
Non-Standard-Datenbanken
Präsentation zum Thema: "Universität meines Traumes"
Indexierung Oracle: indexes Indexierung.
Wieviel Daten für welchen Zweck: Offline-Lernen zur Online-Datenanalyse als Grundlage für Connected-Health Prof. Dr. Ralf Möller Institut für Informationssysteme.
Datenbanken Anfrageoptimierung
Von Wietlisbach, Lenzin und Winter
Non-Standard-Datenbanken und Data Mining
Algorithmen und Datenstrukturen
1. Die rekursive Datenstruktur Liste 1
Präsentation von Darleen und Michèle
Oracle Statistiken im HORIZON-Umfeld
Von Wietlisbach, Lenzin und Winter
Web-Mining Agents Planning
Algorithmen und Datenstrukturen
Projektarbeit von Michael W. Passer Betreuer: Martin Pfeifle
(Structured Query Language)
 Präsentation transkript:

Datenbanken Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Karsten Martiny (Übungen)

Anfrageoptimierung 2 Webformulare AnwendungenSQL-Schnittstelle SQL-Kommandos AusführerParser OptimiererOperator-Evaluierer Transaktions - Verwalter Sperr- Verwalter Dateiverwaltungs- und Zugriffsmethoden Puffer-Verwalter Verwalter für externen Speicher Wieder- herstellungs- Verwalter Datenbank Dateien für Daten und Indexe dieser Teil des Kurses Dateien für Daten und Indexe

Danksagung Diese Vorlesung ist inspiriert von den Präsentationen zu dem Kurs: „Architecture and Implementation of Database Systems“ von Jens Teubner an der ETH Zu ̈ rich Graphiken und Code-Bestandteile wurden mit Zustimmung des Autors (und ggf. kleinen Änderungen) aus diesem Kurs übernommen 3

Anfrageoptimierung Es gibt mehr als eine Art, eine Anfrage zu beantworten –Welche Implementation eines Verbundoperators? –Welche Parameter für Blockgrößen, Pufferallokation,... –Automatisch einen Index aufsetzen? Die Aufgabe, den besten Ausführungsplan zu finden, ist der heilige Gral der Datenbankimplementierung 4

Auswirkungen auf die Performanz Bezogen auf die Ausführungszeit können die Unterschiede „Sekunden vs. Tage“ bedeuten 5 SELECT L.L_PARTKEY, L.L_QUANTITY, L.L_EXTENDEDPRICE FROM LINEITEM L, ORDERS O, CUSTOMER C WHERE L.L ORDERKEY = O.O ORDERKEY AND O.O_CUSTKEY = C.C_CUSTKEY AND C.C_NAME = ’IBM Corp.’ SELECT L.L_PARTKEY, L.L_QUANTITY, L.L_EXTENDEDPRICE FROM LINEITEM L, ORDERS O, CUSTOMER C WHERE L.L ORDERKEY = O.O ORDERKEY AND O.O_CUSTKEY = C.C_CUSTKEY AND C.C_NAME = ’IBM Corp.’

Abschätzung der Ergebnisgröße Betrachte Anfrageblock für Select-From-Where- Anfrage Q Abschätzung der Ergebnisgröße von Q durch die Größe der Eingabetabellen |R 1 |, |R 2 |,...,|R n | und die Selektivität sel(predicate-list) |Q| = |R 1 | ∙ |R 2 | ∙... ∙ |R n | ∙ sel(predicate-list) 6

Tabellenkardinalitäten Die Größe einer Tabelle ist über den Systemkatalog verfügbar (hier IBM DB2) 7 db2 => SELECT TABNAME, CARD, NPAGES db2 (cont.) => FROM SYSCAT.TABLES db2 (cont.) => WHERE TABSCHEMA = 'TPCH'; TABNAME CARD NPAGES ORDERS CUSTOMER NATION 25 2 REGION 5 1 PART SUPPLIER PARTSUPP LINEITEM record(s) selected. db2 => SELECT TABNAME, CARD, NPAGES db2 (cont.) => FROM SYSCAT.TABLES db2 (cont.) => WHERE TABSCHEMA = 'TPCH'; TABNAME CARD NPAGES ORDERS CUSTOMER NATION 25 2 REGION 5 1 PART SUPPLIER PARTSUPP LINEITEM record(s) selected.

Abschätzung der Selektivität... durch Induktion über die Struktur des Anfrageblocks 8 falls es einen Index I auf Attribut column gibt sonst falls es Indexe auf beiden Spalten gibt falls es einen Index nur auf column gibt sonst

Verbesserung der Selektivitätsabschätzung Annahmen –Gleichverteilung der Datenwerte in einer Spalte –Unabhängigkeit zwischen einzelnen Prädikaten Annahmen nicht immer gerechtfertigt Sammlung von Datenstatistiken (offline) –Speicherung im Systemkatalog IBM DB2: RUNSTATS ON TABLE –Meistverwendet: Histogramme 9

Histogramme SYSCAT.COLDIST enthält Informationen wie n-häufigste Werte (und deren Anzahl) Auch Anzahl der verschiedenen Werte pro Histogramm- rasterplatz anfragbar Tatsächlich können Histo-gramme auch absichtlich gesetzt werden, um den Optimierer zu beeinflussen 10 SELECT SEQNO, COLVALUE, VALCOUNT FROM SYSCAT.COLDIST WHERE TABNAME = 'LINEITEM' AND COLNAME = 'L_EXTENDEDPRICE' AND TYPE = 'Q'; SEQNO COLVALUE VALCOUNT SELECT SEQNO, COLVALUE, VALCOUNT FROM SYSCAT.COLDIST WHERE TABNAME = 'LINEITEM' AND COLNAME = 'L_EXTENDEDPRICE' AND TYPE = 'Q'; SEQNO COLVALUE VALCOUNT DB2: TYPE='Q' Quantile (cumulative distribution), TYPE='F' Frequency

Verbund-Optimierung Auflistung der möglichen Ausführungspläne, d.h. alle 3-Wege-Verbundkombinationen für jeden Block 11

Suchraum Der sich ergebende Suchraum ist enorm groß: Schon bei 4 Relationen ergeben sich 120 Möglichkeiten Noch nicht berücksichtigt: Anzahl v der verschiedenen Verbundalgorithmen 12

Dynamische Programmierung Beispiel 4-Wege-Verbund Sammle gute Zugriffspläne für Einzelrelation (z.B. auch mit Indexscan und mit Ausnutzung von Ordnungen) 13 P.G. Selinger, M.M. Astrahan, D.D. Chamberlin, R.A. Lorie and T.G. Price, Access path selection in a relational database management system, In Proc. ACM SIGMOD Conf. on the Management of Data, pages 23-34, 1979

Beispiel: 4-Wege-Verbund 14 a set of good access paths to each of the, interesting orders)

Beispiel (Fortsetzung) Insgesamt: 50 (Unter-)Pläne betrachtet (anstelle von 120 möglichen 4-Wege-Verbundplänen, siehe Tabelle) Alle Entscheidungen basieren auf vorher bestimmten Unterplänen (keine Neuevaluierung von Plänen) 15

Links-tiefe vs. buschige Verbundplan- Bäume Implementierte Systeme generieren meist links-tiefe Pläne 1 Die innere Relation ist immer eine Basisrelation Bevorzugung der Verwendung von Index-Verbunden Gut geeignet für die Verwendung von Pipeline- Verarbeitungsprinzipien 16 1 So z.B. der Prototyp von System R (IBM)

Verbund über mehrere Relationen Dynamische Programmierung erzeugt in diesem Kontext exponentiellen Aufwand [Ono & Lohmann, 90] –Zeit: O(3 n ) –Platz: O(2 n ) Das kann zu teuer sein... –für Verbunde mit mehreren Relationen (10-20 und mehr) –für einfache Anfragen über gut-indizierte Daten, für die ein sehr guter Plan einfach zu finden wäre Neue Plangenerierungsstrategie: Greedy-Join-Enumeration 17 K. Ono, G.M. Lohman, Measuring the Complexity of Join Enumeration in Query Optimization, VLDB 1990

Greedy-Join-Enumeration Wähle in jeder Iteration den kostengünstigsten Plan, der über den verbliebenen Unterplänen zu realisieren ist 18

Prädikatsvereinfachung Beispiel: Schreibe um in Prädikatsvereinfachung ermöglicht Verwendung von Indexen und Vereinfacht die Erkennung von effizienten Verbundimplementierungen 19 SELECT * FROM LINEITEM L WHERE L.L_TAX * 100 < 5 SELECT * FROM LINEITEM L WHERE L.L_TAX * 100 < 5 SELECT * FROM LINEITEM L WHERE L.L_TAX < 0.05 SELECT * FROM LINEITEM L WHERE L.L_TAX < 0.05

Zusätzliche Verbundprädikate Implizite Verbundprädikate wie in können explizit gemacht werden Hierdurch werden Pläne möglich wie (A ⋈ C) ⋈ B 20 SELECT * FROM A, B, C WHERE A.a = B.b AND B.b = C.c SELECT * FROM A, B, C WHERE A.a = B.b AND B.b = C.c SELECT * FROM A, B, C WHERE A.a = B.b AND B.b = C.c AND A.a = C.c SELECT * FROM A, B, C WHERE A.a = B.b AND B.b = C.c AND A.a = C.c

Geschachtelte Anfragen SQL bietet viele Wege, geschachtelte Anfrage zu schreiben Unkorrelierte Unteranfragen Korrelierte Unteranfragen 21 SELECT * FROM ORDERS O WHERE O_CUSTKEY IN (SELECT C_CUSTKEY FROM CUSTOMER WHERE C_NAME = ‘IBM Corp.‘) SELECT * FROM ORDERS O WHERE O_CUSTKEY IN (SELECT C_CUSTKEY FROM CUSTOMER WHERE C_NAME = ‘IBM Corp.‘) SELECT * FROM ORDERS O WHERE O_CUSTKEY IN (SELECT C.C_CUSTKEY FROM CUSTOMER WHERE C.C_ACCTBAL = O.O_TOTALPRICE) SELECT * FROM ORDERS O WHERE O_CUSTKEY IN (SELECT C.C_CUSTKEY FROM CUSTOMER WHERE C.C_ACCTBAL = O.O_TOTALPRICE) Won Kim. On Optimizing an SQL-like Nested Query. ACM TODS, vol. 7, no. 3, 1982

Zusammenfassung Anfrageparser –Übersetzung der Anfrage in Anfrageblock Umschreiber –Logische Optimierung (unabhängig vom DB-Inhalt) –Prädikatsvereinfachung –Anfrageentschachtelung Verbundoptimierung –Bestimmung des „günstigsten“ Plan auf Basis eines Kostenmodells (I/O-Kosten, CPU-Kosten) und Statistiken (Histogramme) sowie Physikalischen Planeigenschaften (interessante Ordnungen) –Dynamische Programmierung, Greedy-Join 22

Noch zu diskutieren Webformulare AnwendungenSQL-Schnittstelle SQL-Kommandos AusführerParser OptimiererOperator-Evaluierer Transaktions - Verwalter Sperr- Verwalter Dateiverwaltungs- und Zugriffsmethoden Puffer-Verwalter Verwalter für externen Speicher Wieder- herstellungs- Verwalter Datenbank Dateien für Daten und Indexe dieser Teil des Kurses Dateien für Daten und Indexe