KAPITEL 5 ANFRAGEOPTIMIERUNG. h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 1

Größe: px
Ab Seite anzeigen:

Download "KAPITEL 5 ANFRAGEOPTIMIERUNG. h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 1"

Transkript

1 KAPITEL 5 ANFRAGEOPTIMIERUNG h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 1

2 Einordnung in die 5-Schichten-Architektur Datensystem Mengenorientierte Schnittstelle Satzorientierte Schnittstelle Zugriffssystem Interne Satzschnittstelle Speichersystem Systempufferschnittstelle Pufferverwaltung Dateischnittstelle Betriebssystem Externspeicher Geräteschnittstelle h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 2

3 Anfrageoptimierung Inhalte des Kapitels Prinzipieller Ablauf der DB-Anfrageauswertung Standardisierung und Vereinfachung von DB-Anfragen Logische Optimierung Physische Optimierung und kostenbasierte Auswahl Beeinflussung der Ausführung von DB-Anfragen durch den DBA in relationalen DBMS Lernziele Kenntnis des prinzipiellen Ablaufs der DB-Anfrageauswertung Verstehen der Optimierungsziele und der Unterschiede zwischen logischer und physischer Optimierung h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 3

4 Basissprachen SQL Relationenkalküle hier: Relationenalgebra Grundprinzipien Ziel der Optimierung möglichst schnelle Anfragebearbeitung möglichst wenig Seitenzugriffe bei der Anfragebearbeitung möglichst in allen Operationen so wenig wie möglich Seiten (Tupel) berücksichtigen h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 4

5 Auswertung von DB-Anfragen 1(4) 1. Übersetzung und Sichtauflösung Erstellung eines Anfragegraphens Überprüfung auf korrekte Syntax Auflösen von Sichtdefinitionen und externen Namen Feststellen der Existenz und Gültigkeit der referenzierten Tabellen und Attribute 2. Standardisierung und Vereinfachung Überführung des Anfragegraphen in eine Normalform Elimination von Redundanzen h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 5

6 Auswertung von DB-Anfragen 2(4) 3. Optimierung Logische Optimierung (auch algebraische Optimierung bzw. regelbasierte Optimierung) Anfrageplan unabhängig von der konkreten Speicherungsform umformen (z.b. Hineinziehen von Selektionen in andere Operationen) Physische Optimierung (auch interne Optimierung) konkrete Speicherungstechniken (Indexe, Cluster) berücksichtigen Algorithmen auswählen mehrere alternative interne Pläne erstellen Kostenbasierte Auswahl Statistikinformationen (Größe von Tabellen, Selektivität von Attributen) für die Auswahl eines konkreten internen Planes nutzen h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 6

7 Auswertung von DB-Anfragen 3(4) 4. Planparametrisierung bei vorkompilierten Anfragen (etwa Embedded-SQL, PreparedStatement in JDBC etc.): Ersetzen der Platzhalter durch Werte 5. Code-Erzeugung Umwandlung des Zugriffsplans in ausführbaren Code interne, binäre Repräsentation der Anfrage, die interpretiert wird (vgl. Java Byte Code) JIT (just-in-time) Compiler 6. Ausführung h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 7

8 Auswertung von DB-Anfragen 4(4) Quelle: Saake/Heuer/Sattler:2005 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 8

9 1. Übersetzung und Sichtauflösung Zunächst Parsen der SQL-Anfrage (syntaktische Korrektheit) Parse-Baum danach Übersetzung in Relationenalgebra: Transformationsregeln Relationen der Tabellenliste hinter from untereinander durch Kreuzprodukt verknüpfen Bedingung im where-teil als Selektion übernehmen Spaltenliste hinter select als abschließende Projektion zusätzlich noch Berücksichtigung von SQL-Konstrukten wie order by, group by Auflösen von Unteranfragen Operatorbaum Operatoren als Knoten Kanten repräsentieren Datenfluss h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 9

10 Parse-Baum Quelle: Saake/Heuer/Sattler:2005 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 10

11 Übersetzung in Relationenalgebra (Operatorbaum) select KNr, Nachname from BESTELLUNG, KUNDE where BESTELLUNG.KNr = KUNDE.KNr AND Datum > Quelle: Saake/Heuer/Sattler:2005 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 11

12 Auflösung von Sichten Sichtexpansion: Einsetzen der Sichtdefinition in Anfrage im Operatorbaum rekursiver Prozess: Sichten über Sichten möglich Beispiel: select BestNr, KNr from BESTELL_INFO where Datum > ' ' and Bezeichnung = ' Arabica Black' wobei BESTELL_INFO eine Sicht über die Tabellen Produkt, Bestellung und Kunde ist, welche BestNr, KNr, Datum und Bezeichnung für jede Bestellung liefert Operatorbaum vor Sichtauflösung? Operatorbaum nach Sichtauflösung? h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 12

13 auch so kann eine SQL-Anfrage aussehen Generierte SQL-Anfrage - durch Tool zur Entscheidungsunterstützung (Online Analytical Processing, OLAP) und GUI- Nutzung erzeugt Quelle: Härder/Rahm:1999 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 13

14 2. Standardisierung und Vereinfachung Vereinfachung der nachfolgenden Optimierungsschritte durch ein einheitliches (kanonisches) Anfrageformat: auf Ausdrucksebene (Bedingungen): Normalformen, Entfernen redundanter Ausdrücke auf Anfrageebene: Entschachtelung (Unteranfragen im where-teil) zur Vereinfachung: Erkennen von gemeinsamen Teilen u.ä. h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 14

15 Standardisierung von Ausdrücken speziell für Selektions- und Verbundbedingungen konjunktive Normalform vs. disjunktive Normalform konjunktive Normalform (KNF) für einfache Prädikate p ij : (p 11 V p 12 V V p 1n ) Λ Λ (p m1 V p m2 V V p mn ) disjunktive Normalform (DNF): (p 11 Λ p 12 Λ Λ p 1n ) V V (p m1 Λ p m2 Λ Λ p mn ) Überführung in KNF/DNF durch Anwendung von Äquivalenzbeziehungen für logische Operationen h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 15

16 Äquivalenzbeziehungen p 1 Λ p 2 p 2 Λ p 1 und p 1 V p 2 p 2 V p 1 Normalisierung p 1 Λ (p 2 Λ p 3 ) (p 1 Λ p 2 ) Λ p 3 und p 1 V (p 2 V p 3 ) (p 1 V p 2 ) V p 3 p 1 Λ (p 2 V p 3 ) (p 1 Λ p 2 ) V (p 1 Λ p 3 ) und p 1 V (p 2 Λ p 3 ) (p 1 V p 2 ) Λ (p 1 V p 3 ) (p 1 Λ p 2 ) p 1 V p 2 und (p 1 V p 2 ) p 1 Λ p 2 ( p 1 ) p 1 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 16

17 Normalisierung: Beispiel select * from KUNDE K, BESTELLUNG B where K.KNr = B.KNr and Menge > 10 and (LName = 'Coffeeshop' or LName = 'Kaffeebude'); Selektionsbedingung in KNF: (K.Nr = B.KNr) Λ (Menge > 10) Λ (LName = Coffeeshop V LName = Kaffeebude ) Selektionsbedingung in DNF: (K.KNr = B.KNr Λ Menge > 10 Λ LName = Coffeeshop ) V (K.KNr = B.KNr Λ Menge > 10 Λ LName = Kaffeebude ) Üblicherweise wird KNF bevorzugt, da damit eine einfache Zerlegung komplexer Bedingungen in Folgen von Selektionen möglich ist später: zuerst Konjunkt abarbeiten, welches mit Index-Scan ausgewertet werden kann h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 17

18 Idempotenzen A V A A A Λ A A A V A true A Λ A false Vereinfachung von Ausdrücken Konstantenpropagierung Ausnutzung von Transitivität Bsp.: A Θ B Λ B = c A Θ c unerfüllbare Ausdrücke A > B Λ B >= C Λ C > A A > A false h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 18

19 Phasen der Auswertung von DB-Anfragen 1. Übersetzung und Sichtauflösung 2. Standardisierung und Vereinfachung 3. Optimierung Logische Optimierung (algebraische Optimierung, regelbasierte Optimierung) Physische Optimierung (interne Optimierung) Kostenbasierte Auswahl 4. Planparametrisierung 5. Code-Erzeugung 6. Ausführung h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 19

20 Logische (algebraische) Optimierung 1(2) Termersetzung von Termen der Relationenalgebra anhand von Algebraäquivalenzen heuristische Methode: Operationen verschieben, um kleinere Zwischenergebnisse zu erhalten; Redundanzen erkennen Zur Erinnerung: Äquivalenzen der Relationenalgebra r s = s r (r s) t = r (s t) P ( Q (r)) = P Λ Q (r)) = Q ( P (r)) B ( A (r)) = B (r) falls B A P ( A (r)) = A ( P (r)) mit attr(p) A P (r s) = P (r ) s falls attr(p) r P (r s) = P1 (r ) P2 (s) falls attr(p 1 ) r und attr(p 2 ) s und P = P 1 Λ P 2 Weitere Regeln für Mengenoperatoren, Kombination von Operatoren, h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 20

21 Logische (algebraische) Optimierung 2(2) Anwenden der Äquivalenzregeln der Relationenalgebra: Wichtigste Regeln für Restrukturierung und Transformation: Frühzeitige Ausführung von Selektion (σ) und Projektion (π) ohne Duplikateliminierung, d.h. Selektionen und Projektionen möglichst weit in Richtung der Blätter verschieben Unäre Operatorfolgen (wie σ und π) zu einer Operation zusammenzufassen Gleiche Teile im Operatorbaum nur einmal auswerten h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 21

22 Logische (algebraische) Optimierung - Beispiel Beispiel: select BestNr, KNr from BESTELL_INFO where Datum > ' ' and Bezeichnung = ' Arabica Black' wobei BESTELL_INFO eine Sicht über die Tabellen Produkt, Bestellung und Kunde ist, welche BestNr, KNr, Datum und Bezeichnung für jede Bestellung liefert Phase 1: Übersetzung und Sichtauflösung + Phase 2: Standardisierung und Vereinfachung > h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 22

23 Beispiel: Anfrageplan ohne Optimierung Quelle: Saake/Heuer/Sattler:2005 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 23

24 Beispiel: Anfrageplan mit Optimierung 1(2) Verschieben der Selektion und Zusammenfassen der Projektionen Quelle: Saake/Heuer/Sattler:2005 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 24

25 Beispiel: Anfrageplan mit Optimierung 2(2) Zusätzliche Projektionen und was noch? Quelle: Saake/Heuer/Sattler:2005 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 25

26 Physische Optimierung Bis jetzt wurden nur logische Operationen betrachtet ohne Berücksichtigung der Realisierungsform und ohne Berücksichtigung von eventuell vorhandenen Zugriffspfaden Auswahl von Berechnungsalgorithmen Selektion Selektion durch Relationen-Scan Selektion über Index Projektion Projektion durch Relationen-Scan mit/ohne Duplikateleminierung über sortierte/unsortierte Relation Verbund Verbund durch Nested-Loops Verbund durch Mischen Verbund durch Hash-Join Gruppierung Gruppierung durch Sortierung durch Hashing h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 26

27 Beispiel: Ausführungsplan 1(2) select * from BESTELLUNG where ProdNr = 42 and (LName = 'Kaffeebude' or LName = 'CoffeeShop') and Menge < 10 Ausführungsplan Variante 1: mit F = (ProdNr = 42) Λ (LName = Kaffeebude V LName = CoffeeShop ) Λ Menge < 10 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 27

28 Beispiel: Ausführungsplan 2(2) Variante 1 Variante 2 Quelle: Saake/Heuer/Sattler:2005 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 28

29 Physische Optimierung: Kostenmodell Welchen Ausführungsplan auswählen? Kostenmodelle zur Abschätzung bzw. Berechnung der Kosten eines Ausführungsplan Kostenfunktion: zur Abschätzung der Kosten für Ausführung von Operationen bzw. Anfragen (siehe auch voriges Kapitel Basisalgorithmen für Datenbankoperationen) Statistiken: über Größe der Relationen (Kardinalität, Tupelgröße), Wertebereiche und -verteilungen Kostenformeln: zur Berechnung der Größen von (Zwischen-)Ergebnissen auf der Basis der Statistiken Hier nur Darstellung der Grundprinzipien(!) keine detaillierte Betrachtung für eine ausführliche Darstellung sei auf Saake/Heuer/Sattler:2005 verwiesen h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 29

30 Kostenarten: Kostenfunktion I/O-Kosten: verursacht durch das Lesen und Schreiben von Blöcken vom bzw. auf den Externspeicher CPU-Kosten: für interne Berechnungen, Vergleiche etc., Kommunikationskosten: im Fall verteilter Datenbanksysteme üblicherweise: cost = cost IO + W cost CPU Faktor W zur Kalibrierung bzgl. Hardware h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 30

31 Idee: Kostenformeln Gesamtaufwand durch Abschätzung der Kardinalitäten der Zwischenergebnisse Kardinalität über Selektivität der Operatoren Selektivität sel = Erwartete Größe des Ergebnisses Kardinalität der Eingangsrelation Annahmen: Gleichverteilung, Unabhängigkeit der Attribute Beispiel für Selektion: σf ( r ) sel( F, r ) Abschätzung (für interpolierbare, arithmetische Werte): r sel( A v, r ) 1 vala, r sel( A v, r ) A A max max v A min sel( A v, r ) v A max A A min min sel ( A betweenv1 and v2, r ) v A 2 max v1 A min h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 31

32 Statistiken Problem: Annahme der Gleichverteilung häufig nicht korrekt Verbesserung der Abschätzungen Parametrisierte Funktionen: Parameter einer Funktion zur Annäherung der Datenverteilung (z.b. Normal- oder Zipf-Verteilung) Stichprobe: Selektivität anhand einer zufälligen Stichprobe bestimmen Histogramme: Approximationen der tatsächlichen Verteilung h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 32

33 Histogramme: Prinzip Quelle: Saake/Heuer/Sattler:2005 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 33

34 Arten von Histogrammen 1(2) sehr viele verschiedene Arte von Histogrammen 2 der wichtigsten Histogramm-Arten: Equi-width und Equi-depth (Equi-height) Histogramme Beispiel: Equi-width Histogramm Equi-depth / Equi-height Histogramm Quelle: Saake/Heuer/Sattler:2005 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 34

35 Häufigkeit Arten von Histogrammen 2(2) Weitere wichtige Histogramm-Art: Compressed-Histogramm Prinzip: die k-höchsten Attributwerte werden getrennt von den anderen in 1-elementigen Buckets gespeichert die anderen in equi-width (oder equi-height) Wertbereich von Preis h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 35

36 Aufbau und Pflege von Histogrammen Ziel: Histogramm sollte tatsächliche Verteilung widerspiegeln auch nach Updates statischer Ansatz: expliziter Aufbau, keine Berücksichtigung von Änderungen dynamischer Ansatz: Anpassung der Histogramme Verwaltung einer Stichprobe (sampling) der Relation und Abbildung der Änderungen auf Stichprobe Query Feedback: Nutzung von Anfrageergebnissen zur Anpassung h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 36

37 Oracle: Optimizer und Statistiken bis Oracle 9: Auswahl zwischen regelbasierter (logischer) und kostenbasierter (physischer) Optimierung ab Oracle 10: grundsätzlich kostenbasierte Optimierung führen von Statistiken notwendig bis Oracle 9: manuelle Entscheidung, für welche Tabellen Statistiken berechnet (compute) bzw. geschätzt (estimate) werden und für welche Spalten Histogramme erstellt werden ab Oracle 10: wegen kostenbasierter Optimierung werden Statistiken automatisch vom DBMS geführt (trotzdem noch Möglichkeit, manuell einzugreifen Parameter statistics_level = { all typical basic } ) Aktualisierung der Statistiken: zu festgelegten Zeiten in Wartungsfenstern h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 37

38 Oracle: Statistiken kostenrelevante Informationen für Tabellen: (in View user_tables bzw. user_tab_statistics) Anzahl der Tupel (num_rows) Anzahl der belegten Blöcke (num_blocks) durchschnittliche Tupellänge (avg_row_len) für Spalten (in View user_tab_col_statistics) Anzahl der verschiedenen Werte (num_distinct) Anzahl der Nullwerte (num_nulls) Art des Histogramms (histogram) Anzahl der Buckets im zugehörigen Histogramm (num_buckets) für Indexe (in View user_indexes) Anzahl der Blattseiten (leaf_blocks) Anzahl der Indexebenen (blevel) Cluster-Faktor (clustering_factor) h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 38

39 Arten von Histogrammen Oracle: Histogramme Equi-depth (height-balanced genannt) Compressed-Variante (frequency genannt) Jeder(!) Wert der Spalte hat korrespondierendes Bucket mit Häufigkeit des Wertes Anwendung, wenn Anzahl der verschiedenen Werte der Spalte Anzahl der Buckets Auswahl der Histogramm-Art in Abhängigkeit von Häufigkeit der Werte h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 39

40 Oracle: Planausgabe 1(2) Prinzip: Ausführungsplan für ein SQL-Statement kann mit explain plan erzeugt (dabei wird das Statement NICHT ausgeführt): explain plan [ set statement_id = 'test' ] for SQL-Anweisung Erzeugter Ausführungsplan wird in Tabelle plan_table (> 30 Attribute) gespeichert und kann angezeigt werden: select lpad(' ',2*level) operation ' ' options ' ' object_name as q_plan from plan_table where statement_id = 'test' connect by prior id = parent_id and statement_id = 'test' start with id = 1; Alternative 1: Hilfsprogramm utlxpls.sql (gibt letztes in plan_table gespeichertes Statement aus) Alternative 2: grafische Ausgabe über Oracle SQL Developer h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 40

41 Oracle: Planausgabe 2(2) Seit Oracle10 auch mit Kostenangaben Beispiel: select buch.isbn, count(*) from buch, autor where buch.isbn = autor.isbn group by buch.isbn having count(*) > 2; Planausgabe h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 41

42 Oracle: Optimierungsziele Angabe von Optimierungszielen möglich all_rows: Optimierung bezüglich der Zeit der Bereitstellung des Gesamtergebnisses first_rows (n): Optimierung bezüglich der Zeit der Bereitstellung der ersten n Tupel des Gesamtergebnisses Das Optimierungsziel kann direkt im Statement angegeben werden: select /*+ first_rows(10) */ AngNr, Name from Angestellte where AbtNr = 20; oder für die ganze Session gesetzt werden: alter session set optimizer_goal = first_rows; h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 42

43 Oracle: Hints für den Optimizer Angabe von Hints für den Optimizer möglich: select /*+ Hint-Liste */ Attribute from... Auswahl konkreter Algorithmen (z.b. use_nl für Nested-Loops-Verbund, use_merge für Merge-Verbund, use_hash für Hash-Verbund) Verwendung oder Nichtverwendung von Indexen (z.b. index für einen bestimmten Index, full für Erzwingung eines Full-Table-Scans) Reihenfolge der Berechnung z.b. von Mehrfachverbunden (ordered für die Vorgabe der Verbundreihenfolge entsprechend der from-klausel) und vieles mehr Beispiel: select /*+ full(p) */ ProdNr, Bezeichnung from PRODUKT p where ProdNr = ; h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 43

44 DB2: Optimizer und Statistiken Auswahl von 7 verschiedenen Optimierungsklassen (dadurch Entscheidung, ob regelbasiert oder kostenbasiert und welche Regeln bzw. welche Statistiken verwendet werden) Statistiken: manuelle Entscheidung, für welche Tabellen Statistiken geführt werden und in welchem Umfang Informationen nur über Tabelle zusätzlich Histogramme (auf allen oder ausgewählten Spalten) zusätzlich (oder ausschließlich) Indexstatistiken (auf allen oder ausgewählten Indexen) runstats on table <tablename> [ with distribution [ on columns <columlist> ] ] [and [ [ sampled unsampled ] detailed ] indexes for [ [ sampled unsampled ] detailed ] indexes ] h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 44

45 DB2: Statistiken für Tabellen: (in View syscat.tables) Anzahl (Kardinalität) der Tupel (card) Anzahl der Seiten der Relation (fpages) Anzahl der tatsächlich genutzten Seiten der Relation (npages) Anzahl der Überlauf-Records der Relation (overflow) für Spalten (in View syscat.columns) Anzahl der verschiedenen Werte (colcard) Durchschnittsgröße der Spaltenwerte (avgcollen) Anzahl der Nullwerte (numnulls) Zweithöchster Wert (high2key) Zweitniedrigster Wert (low2key) für Indexe (in View syscat.indexes) Anzahl der Blattseiten (nleaf) Anzahl der Indexebenen (nlevels) Cluster-Faktor (clusterratio) h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 45

46 DB2: Histogramme Kombination aus Compressed- und Equi-depth-Histogramm k häufigsten Werte werden in Einzel-Buckets abgelegt die anderen Werte werden in Quantilen verwaltet: Speicherung der kumulativen Häufigkeiten (dem Wert an der i-ten Position wird die Anzahl aller Tupel, die kleiner oder gleich diesem Wert sind, zugeordnet) Parameter num_freqvalues: Anzahl der Werte im Compressed-Histogramm (Standardwert 10) num_quantiles: Anzahl der Quantile im Equi-depth-Histogramm (Standardwert 20) h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 46

47 DB2: Sampling runstats on table <tablename> [ with distribution [ on columns <columlist> ] ] [and [ [ sampled unsampled ] detailed ] indexes for [ [ sampled unsampled ] detailed ] indexes ] Beispiele RUNSTATS ON TABLE employee WITH DISTRIBUTION ON COLUMNS (empid, empname) RUNSTATS ON TABLE employee AND DETAILED INDEXES ALL seit Version 10.1 ist für Indexe SAMPLED die Default-Variante Sampling kann genauer spezifiert werden (Menge und Auswahlalgorithmus) RUNSTATS ON TABLE employee WITH DISTRIBUTION AND DETAILED INDEXES ALL TABLESAMPLE SYSTEM(20) INDEXSAMPLE SYSTEM(30) h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 47

48 DB2: Optimierungsklassen Auswahl einer Optimierungsklasse durch prep queryopt und bind queryopt für Embedded SQL bzw. set current query optimization = klasse für interaktive Anfragen 7 (früher 10) Klassen Auswahl der wichtigsten Klassen: Klasse 0: minimale Optimierung Klasse 1: keine Auswertung von Attributwertverteilungen zur Selektivitätsabschätzung Klasse 2: Auswertung von Attributwertverteilungen Klasse 5: Standardeinstellung Klasse 9: alle Optimierungstechniken (nur für komplexe, vorübersetzte Anfragen in Embedded-SQL-Programmen) Außerdem möglich: optimize for-klausel am Ende eines SFW-Blocks zur Spezifikation der Anzahl der zu lesenden Tupel h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 48

49 DB2: Aktualisierung der Statistiken Aktualisierung der Statistiken manuell (Ausführen des Kommandos runstats) ab Version 8.2 auch automatisch (abhängig von Veränderungen auf dem Datenbestand und Server-Last) was ist die Herausforderung? ab Version 8.2 außerdem LEO (Learning Optimizer) Vergleich der abgeschätzten Kardinalitäten mit den tatsächlichen Ergebnissen (siehe nächste Folie) Speicherung eines Anpassungsfaktors Warum nicht direkt Aktualisierung der Statistiken? h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 49

50 DB2: LEO (Learning Optimizer) Quelle: V. Markl, G. M. Lohman, V. Raman LEO: An autonomic query optimizer for DB2, IBM SYSTEMS JOURNAL, VOL 42, NO 1, 2003 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 50

51 Planerstellung aktivieren: DB2: Planausgabe 1(2) set current explain mode = yes explain explain: nur Planerstellung nicht Ausführung der Anfrage Plan für SQL-Anfrage erstellen: explain plan for SQL-Anweisung Grafische (db2expln) und textuelle (db2exfmt) Ausgabe möglich h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 51

52 DB2: Planausgabe 2(2) Beispiel: select produkt.pid, produktname from produkt, bestellung where produkt.pid = bestellung.pid group by produkt.pid, produktname having count(*) > 1000; Planausgabe h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 52

53 Ablauf der Anfrageverarbeitung Zusammenfassung Vereinfachung und Normalisierung von Anfragen Logische (algebraische) Optimierung - query rewriting Physische Optimierung mit Kostenmodell h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 53

54 Architektur von Datenbanksystemen Architektur von Datenbanksystemen Verwaltung des Hintergrundspeichers Dateiorganisation und Zugriffsstrukturen Basisalgorithmen für Datenbank-Operationen Anfrageoptimierung Transaktionsverwaltung und Recovery Verteilte Datenbankarchitekturen h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 5: Anfrageoptimierung 54

Datenbankadministration

Datenbankadministration Datenbankadministration 8. Anfrageoptimierung II AG DBIS University of Kaiserslautern, Germany Karsten Schmidt kschmidt@informatik.uni-kl.de (Vorlage TU-Dresden) Wintersemester 2008/2009 Übersicht Vorherige

Mehr

KAPITEL 4 BASISALGORITHMEN FÜR DATENBANKOPERATIONEN

KAPITEL 4 BASISALGORITHMEN FÜR DATENBANKOPERATIONEN KAPITEL 4 BASISALGORITHMEN FÜR DATENBANKOPERATIONEN h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 4: Basisalgorithmen für Datenbankoperationen 1 Einordnung in die 5-Schichten-Architektur

Mehr

Abschluss Einblick und Ausblick

Abschluss Einblick und Ausblick Abschluss Einblick und Ausblick Prof. Dr. T. Kudraß 1 Benutzer Komponenten eines DBMS (Überblick) I/O-Prozessor Output-Generierung Parser für selbst. oder eingebettete Kommandos Precompiler Autorisierungs-Kontrolle

Mehr

Anfrageoptimierung Ausführungspläne, Hints, Statistikinformationen, IDEs

Anfrageoptimierung Ausführungspläne, Hints, Statistikinformationen, IDEs Anfrageoptimierung Ausführungspläne, Hints, Statistikinformationen, IDEs Peter Matjeschk 05-INDT Fachbereich Informatik, Mathematik und Naturwissenschaften HTWK-Leipzig 19. Juni 2008 Peter Matjeschk (Fb

Mehr

Anfragebearbeitung. Logische Optimierung Physische Optimierung (Kostenmodelle Tuning ) Kapitel 8 1

Anfragebearbeitung. Logische Optimierung Physische Optimierung (Kostenmodelle Tuning ) Kapitel 8 1 Anfragebearbeitung Logische Optimierung Physische Optimierung (Kostenmodelle Tuning ) Kapitel 8 1 Ablauf der Anfrageoptimierung Deklarative Anfrage (SQL) Scanner Parser Sichtenauflösung Algebraischer Ausdruck

Mehr

Anfrageoptimierung Kostenabschätzung

Anfrageoptimierung Kostenabschätzung Institute for Web Science & Technologies WeST Grundlagen der Datenbanken Kostenabschätzung Dr. Thomas Gottron Wintersemester 2012/13 Regel vs. Kostenbasierte Optimierung Bisher: Regeln, wie Optimierung

Mehr

Star Join & Kostenbasierte Optimierung. Architektur von Datenbanksystemen II

Star Join & Kostenbasierte Optimierung. Architektur von Datenbanksystemen II Star Join & Kostenbasierte Optimierung Architektur von Datenbanksystemen II Star Join Übungsaufgabe zum 09.06.2015 JOIN-ALGORITHMUS für folgendes Scenario Große Faktentabelle F mit sehr vielen Einträgen

Mehr

Anfragebearbeitung. Anfrage. Übersetzer. Ausführungsplan. Laufzeitsystem. Ergebnis

Anfragebearbeitung. Anfrage. Übersetzer. Ausführungsplan. Laufzeitsystem. Ergebnis Anfragebearbeitung Anfrage Übersetzer Ausführungsplan Laufzeitsystem Ergebnis Übersetzung SQL ist deklarativ, Übersetzung für Laufzeitsystem in etwas prozedurales DBMS übersetzt SQL in eine interne Darstellung

Mehr

Oracle 9i Einführung Performance Tuning

Oracle 9i Einführung Performance Tuning Kurs Oracle 9i Einführung Performance Tuning Teil 3 Der Optimizer Timo Meyer Wintersemester 2005 / 2006 Seite 1 von 16 Seite 1 von 16 1. auf Tabellen 2. 3. Optimizer 4. Optimizer RBO 5. Optimizer CBO 6.

Mehr

Anfrageoptimierung Kostenmodelle

Anfrageoptimierung Kostenmodelle Web Science & Technologies University of Koblenz Landau, Germany Grundlagen der Datenbanken Anfrageoptimierung Kostenmodelle Dr. Jérôme Kunegis Wintersemester 2013/14 Regel vs. Kostenbasierte Optimierung

Mehr

Datenbanksysteme I Anfragebearbeitung und -optimierung Felix Naumann

Datenbanksysteme I Anfragebearbeitung und -optimierung Felix Naumann Datenbanksysteme I Anfragebearbeitung und -optimierung 9.1.2008 Felix Naumann Anfragebearbeitung Grundproblem 2 Anfragen sind deklarativ. SQL, Relationale Algebra Anfragen müssen in ausführbare (prozedurale)

Mehr

Indexstrukturen in SQL

Indexstrukturen in SQL Indestrukturen in SQL Anlegen eines Primärinde in SQL: Anlegen eines Sekundärinde in SQL: Bsp: create table Dozenten ( DNr integer primary key, Name varchar(0), Geburt date, ) create [Unique] inde indename

Mehr

Kapitel 10: Relationale Anfragebearbeitung

Kapitel 10: Relationale Anfragebearbeitung Ludwig Maimilians Universität München Institut für Informatik Lehr- und Forschungseinheit für Datenbanksysteme Skript zur Vorlesung Wintersemester 201/2016 Kapitel 10: Relationale Anfragebearbeitung Vorlesung:

Mehr

Datenbanksysteme I Anfragebearbeitung und -optimierung Felix Naumann

Datenbanksysteme I Anfragebearbeitung und -optimierung Felix Naumann Datenbanksysteme I Anfragebearbeitung und -optimierung 22.6.2009 Felix Naumann Anfragebearbeitung Grundproblem 2 Anfragen sind deklarativ. SQL, Relationale Algebra Anfragen müssen in ausführbare (prozedurale)

Mehr

Optimierung von Datenbanken

Optimierung von Datenbanken Optimierung von Datenbanken Vortrag in Datenbanken II Bettina Keil 19. Juni 2008 Optimierung von Datenbanken 1/17 Gliederung Motivation Optimierung von Datenbanken 2/17 Motivation Performancesteigerung:

Mehr

Kapitel 10: Relationale Anfragebearbeitung

Kapitel 10: Relationale Anfragebearbeitung Ludwig Maimilians Universität München Institut für Informatik Lehr- und Forschungseinheit für Datenbanksysteme Skript zur Vorlesung Datenbanksysteme I Wintersemester 2017/2018 Kapitel 10: Relationale Anfragebearbeitung

Mehr

Teil VI Optimierung von Anfragen

Teil VI Optimierung von Anfragen Teil VI Optimierung von Anfragen Überblick 1 Motivation c Sattler / Saake Datenbank-Implementierungstechniken Letzte Änderung: 2. Juni 2017 6 1 Überblick 1 Motivation 2 Phasen c Sattler / Saake Datenbank-Implementierungstechniken

Mehr

Adaptive Anfrageoptimierung

Adaptive Anfrageoptimierung Technische Universität Kaiserslautern Fachbereich Informatik Lehrgebiet Datenverwaltungssysteme Integriertes Seminar Datenbanken und Informationssysteme Wintersemester 2005/2006 Thema: Dependable Adaptive

Mehr

Inhalt. Dr. Frank Haney 17.5.2005 1

Inhalt. Dr. Frank Haney 17.5.2005 1 Inhalt SQL-Optimierung Grundlagen Logische und physische Optimierung CBO Funktionsweise Entscheidungsgrundlagen Zugriffspfade Statistiken für den Optimizer Initialisierungsparameter Optimizer Hints Dynamic

Mehr

Grundlagen von Datenbanken. 4. Übung: Algebraische Optimierung

Grundlagen von Datenbanken. 4. Übung: Algebraische Optimierung Grundlagen von Datenbanken 4. Übung: Algebraische Optimierung Algebraische Optimierung Ziel Effiziente Ausführung eines algebraischen Ausdrucks Minimierung der Größe von Zwischenergebnissen (das Endergebnis

Mehr

Anfrageoptimierung Logische Optimierung

Anfrageoptimierung Logische Optimierung Institute for Web Science & Technologies WeST Grundlagen der Datenbanken Logische Optimierung Dr. Thomas Gottron Wintersemester 2012/13 Ablauf der Deklarative Anfrage Scanner Parser Sichtenauflösung Algebraischer

Mehr

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell Jetzt: -> Formulierung in DDL Daten-Definitionssprache (DDL) DDL ist Teil von SQL (Structured

Mehr

Gliederung. 1) Speicherplatz-Zuordnung und -Verwaltung 2) Indizes 3) Explain Plan 4) Join-Operationen 5) Der Optimizer 6) Parallelisieren

Gliederung. 1) Speicherplatz-Zuordnung und -Verwaltung 2) Indizes 3) Explain Plan 4) Join-Operationen 5) Der Optimizer 6) Parallelisieren Gliederung ) Speicherplatz-Zuordnung und -Verwaltung 2) Indizes 3) Explain Plan 4) Join-Operationen 5) Der Optimizer 6) Parallelisieren ) Speicherplatz-Zuordnung und -Verwaltung.) Tabellenspeicherung:

Mehr

Grundprinzipien der Anfrageoptimierung

Grundprinzipien der Anfrageoptimierung 5. Anfragebearbeitung und -optimierung Grundprinzipien und Beispiele Grundprinzipien der Anfrageoptimierung In einem RDBS wird mit SQL nur die Ergebnismenge festgelegt (deskriptiver Ansatz). Eine möglichst

Mehr

Kommunikation und Datenhaltung

Kommunikation und Datenhaltung Kommunikation und Datenhaltung Anfrageoptimierung Überblick über den Datenhaltungsteil Einleitung und Grundlagen Architektur von Datenbanksystemen Datenbankanfragen Relationenmodell und Relationenalgebra

Mehr

Grundlagen von Datenbanken. 4. Übung: Algebraische Optimierung

Grundlagen von Datenbanken. 4. Übung: Algebraische Optimierung Grundlagen von Datenbanken 4. Übung: Algebraische Optimierung Algebraische Optimierung Ziel Effiziente Ausführung eines algebraischen Ausdrucks Minimierung der Größe von Zwischenergebnissen (das Endergebnis

Mehr

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof Alfons Kemper, PhD Blatt Nr 2 Übung zur Vorlesung Grundlagen: Datenbanken im WS5/6 Harald Lang, Linnea Passing (gdb@intumde) http://www-dbintumde/teaching/ws56/grundlagen/

Mehr

Performance in der Oracle Datenbank von Anfang an

Performance in der Oracle Datenbank von Anfang an Performance in der Oracle Datenbank von Anfang an Marco Mischke, 26.04.2018 DOAG Regional Agenda Tabellen Indizes Ausführungspläne SQL vs PL/SQL Tabellen Zu 99% werden Standard Strukturen zur Speicherung

Mehr

Architektur von Datenbanksystemen

Architektur von Datenbanksystemen Architektur von Datenbanksystemen Prof. Dr. Uta Störl Hochschule Darmstadt Fachbereich Informatik Wintersemester 2017/18 Motivation In Datenbanken-Grundvorlesung betrachtet: Funktionalität von Datenbanksystemen

Mehr

8. Anfrageoptimierung

8. Anfrageoptimierung 8. Anfrageoptimierung Vorgehensweise Übersetzung vs. Interpretation von DB-Operationen Anfragedarstellung Anfragetransformation Erstellung und Auswahl von Zugriffsplänen Kostenbewertung Prof. E. Rahm 8-1

Mehr

ORACLE. ORACLE-SQL für Profis. Tuning von ORACLE-SQL (Einführung-2) Januar,

ORACLE. ORACLE-SQL für Profis. Tuning von ORACLE-SQL (Einführung-2) Januar, ORACLE ORACLE-SQL für Profis Tuning von ORACLE-SQL (Einführung-2) 1 1. Die Oracle Optimizer Die SQL-Optimizer entscheiden grundsätzlich anhand der folgenden Kriterien: Angegebene Syntax für die Anweisung

Mehr

Datenbanken 2. Kapitel 5: Pufferverwaltung und Optimierung von Zugriffspfaden

Datenbanken 2. Kapitel 5: Pufferverwaltung und Optimierung von Zugriffspfaden Datenbanken 2 Kapitel 5: Pufferverwaltung und Optimierung von Zugriffspfaden Inhalte des Kapitels Pufferverwaltung und Optimierung von Zugriffspfaden DB-Puffermanagement DB-Zugriffspfade Explains Lernziele

Mehr

Architektur und Optimierung relationaler Datenbanksysteme

Architektur und Optimierung relationaler Datenbanksysteme Literatur Architektur und relationaler Datenbanksysteme M. Jarke, J. Koch: Query optimization in database systems, ACM Computing Surveys, Vol. 16, No. 2, pp. 111-152, 1984. (ein Klassiker zur Anfrageoptimierung)

Mehr

Methodik zur Optimierung in Datenbanken. Anja Rommel, 14-INM

Methodik zur Optimierung in Datenbanken. Anja Rommel, 14-INM Methodik zur Optimierung in Datenbanken Anja Rommel, 14-INM 03.07.2015 Gliederung 1. Einleitung 2. Motivation und Ziele 3. Phasen der Optimierung 3.1. Phase 1: Optimierung des DB-Schemas und Anwendungsoptimierung

Mehr

1 Relationenalgebra [8 P.] Gegeben seien die folgenden Relationenschemata: Hafen(HNR, Ort, Grundsteinlegung)

1 Relationenalgebra [8 P.] Gegeben seien die folgenden Relationenschemata: Hafen(HNR, Ort, Grundsteinlegung) 1 Relationenalgebra Gegeben seien die folgenden Relationenschemata: [8 P.] Hafen(HNR, Ort, Grundsteinlegung) Matrose(MNR, Nachname, Geburtsdatum, Ausbildungsort Hafen.HNR) Schi(SNR, Name, Bruttoregistertonnen,

Mehr

Webbasierte Informationssysteme

Webbasierte Informationssysteme SS 2004 Prof. Dr. Stefan Böttcher Universität Paderborn - SS 2004 - Prof. Dr. Stefan Böttcher Folie 1 Was ist eine relationale Datenbank? Menge von Relationen (=Tabellen) und Constraints (=Integritätsbedingungen)

Mehr

Aufbau Datenbanksysteme

Aufbau Datenbanksysteme Aufbau Datenbanksysteme Lehrveranstaltung Datenbanktechnologien Prof. Dr. Ingo Claßen Prof. Dr. Martin Kempa Hochschule für Technik und Wirtschaft Berlin Speichersystem c Ingo Claßen, Martin Kempa Softwarearchitektur

Mehr

Datenbank- Implementierung

Datenbank- Implementierung DB2 Crash 0 1 Crash-Kurs Datenbank- Implementierung Uni Magdeburg Gunter Saake saake@iti.cs.uni-magdeburg.de DB2 Crash 0 1 Überblick 1. Architektur von Datenbanksystemen 2. Basisalgorithmen für Datenbankoperationen

Mehr

7. Anfrageoptimierung Vorgehensweise Übersetzung vs. Interpretation von DB-Operationen

7. Anfrageoptimierung Vorgehensweise Übersetzung vs. Interpretation von DB-Operationen 7. Anfrageoptimierung Vorgehensweise Übersetzung vs. Interpretation von DB-Operationen Anfragedarstellung Anfragetransformation Erstellung und Auswahl von Zugriffsplänen Kostenbewertung WS10/11, Prof.

Mehr

Anfragebearbeitung und Optimierung

Anfragebearbeitung und Optimierung In diesem Kapitel geht es darum, wie ein DBMS eine SQL-Anfrage verarbeitet. Also: 1. Schritte der Anfragebearbeitung 2. Parsen und Validieren 3. Optimieren und Erstellen des Zugriffsplans Schritte der

Mehr

Anfrageverarbeitung. Einführung

Anfrageverarbeitung. Einführung Anfrageverarbeitung Prof. Dr. T. Kudraß 1 Einführung Wir betrachten die Implementierung der Operatoren der Relationenalgebra: Basis-Operationen: Selektion ( σ ) Auswahl einer Teilmenge von Tupeln aus der

Mehr

Kostenmodelle und Tuning. Anfragebearbeitung 3. Kostenmodelle. Kostenbasierte Optimierung. VL Datenbanksysteme

Kostenmodelle und Tuning. Anfragebearbeitung 3. Kostenmodelle. Kostenbasierte Optimierung. VL Datenbanksysteme Kostenmodelle und Tuning Anfragebearbeitung 3 VL Datenbanksysteme Ingo Feinerer Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Grundidee

Mehr

7. XML-Datenbanksysteme und SQL/XML

7. XML-Datenbanksysteme und SQL/XML 7. XML-Datenbanksysteme und SQL/XML Native XML-DBS vs. XML-Erweiterungen von ORDBS Speicherung von XML-Dokumenten Speicherung von XML-Dokumenten als Ganzes Generische Dekomposition von XML-Dokumenten Schemabasierte

Mehr

6. Optimierung von Anfragen

6. Optimierung von Anfragen 6. Optimierung von Anfragen Grundprinzipien, motivierende Beispiele Phasen der Anfrageverarbeitung Übersetzung von SQL in Relationenalgebra Logische Optimierung (algebraisch, Tableau) Interne Optimierung

Mehr

7. Anfrageoptimierung Vorgehensweise Übersetzung vs. Interpretation von DB-Operationen

7. Anfrageoptimierung Vorgehensweise Übersetzung vs. Interpretation von DB-Operationen 7. Anfrageoptimierung Vorgehensweise Übersetzung vs. Interpretation von DB-Operationen Anfragedarstellung Logische Optimierung / Anfragetransformation Physische Optimierung Erstellung alternativer Ausführungspläne

Mehr

Ich liebe es, wenn ein Plan funktioniert

Ich liebe es, wenn ein Plan funktioniert Ich liebe es, wenn ein Plan funktioniert Der Ausführungsplan Thomas Klughardt Senior Presales Consultant 16.11.2011 Quest Software 60 Büros 3 HQs Nord-/ Mittel-/ Südamerika Europa Asien / Pazifik 3600+

Mehr

Inhaltsverzeichnis. Inhalt. 1 Einführung in die Datenbanktechnologie

Inhaltsverzeichnis. Inhalt. 1 Einführung in die Datenbanktechnologie 3 Inhaltsverzeichnis 1 Einführung in die Datenbanktechnologie 1.1 Einleitung... 8 1.1.1 Zielsetzung... 8 1.1.2 Aufbau des Studienbuches... 9 1.1.3 Abgrenzung... 10 1.2 Grundbegriffe... 10 1.3 Datenbanksysteme...

Mehr

Relationale Datenbanken

Relationale Datenbanken Ramon A. Mata-Toledo, Pauline K. Cushman Relationale Datenbanken Schaum's Repetitorien Übersetzung aus dem Amerikanischen von G&U Technische Dokumentation GmbH Z Die Autoren 9 Vorwort 9 1 Ein Überblick

Mehr

9 Auswertung von Anfrageoperatoren 9.1 Selektion

9 Auswertung von Anfrageoperatoren 9.1 Selektion 9. Auswertung von Anfrageoperatoren 9.1. Selektion Seite 1 9 Auswertung von Anfrageoperatoren 9.1 Selektion Auswertung von σ[a op val]r. Index zu A, Sortierung zu A, Operator op. Auswertung von Formeln

Mehr

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5 Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov. 2006 M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5 Aufgabe 1: Projektion Datenbanksysteme I π A1,...,A n (π B1,...,B

Mehr

Logische Optimierung. Im Allgemeinen wird keine optimale Lösung erzielt, sondern nur eine Verbesserung. Logische Optimierung

Logische Optimierung. Im Allgemeinen wird keine optimale Lösung erzielt, sondern nur eine Verbesserung. Logische Optimierung Logische Optimierung Höhere, nichtprozedurale Abfragesprachen (SQL, QBE,...) verlangen keine Kenntnisse des Benutzers über die Implementierung, müssen aber in prozedurale Form (z. B. Relationenalgebra)

Mehr

DB-Anfrageverarbeitung Überblick (2)

DB-Anfrageverarbeitung Überblick (2) DB-Anfrageverarbeitung Überblick (1) Transaktionsprogramme Mengenorientierte DB-Schnittstelle SQL, QBE... Satzorientierte DB-Schnittstelle FID EXT/STORE... Interne Satz-Schnittstelle Speichere Satz (in

Mehr

Semesterklausur Wiederholung

Semesterklausur Wiederholung Universität Augsburg, Institut für Informatik Wintersemester 2010/2011 Prof. Dr. W. Kießling 04. April 2011 Dr. M. Endres, F. Wenzel Datenbanksysteme Semesterklausur Wiederholung Hinweise: Die Bearbeitungszeit

Mehr

Welche Kunden haben die gleiche Ware bestellt? select distinct a1.name, a2.name from Auftrag a1, Auftrag a2 where a1.ware = a2.ware.

Welche Kunden haben die gleiche Ware bestellt? select distinct a1.name, a2.name from Auftrag a1, Auftrag a2 where a1.ware = a2.ware. *HVFKDFKWHOWH$QIUDJHQ In einer SQL-Anweisung können in der where-klausel, from-klausel, select-klausel wieder SQL-Anweisungen auftreten. Man spricht dann auch von einer geschachtelten Anfrage oder Unteranfrage.

Mehr

Wiederholung VU Datenmodellierung

Wiederholung VU Datenmodellierung Wiederholung VU Datenmodellierung VU Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester

Mehr

Semesterklausur Datenbanksysteme 1 SS 2015

Semesterklausur Datenbanksysteme 1 SS 2015 Universität Augsburg, Institut für Informatik Sommersemester 2015 Prof. Dr. W. Kießling 10. April 2015 F. Wenzel, L.Rudenko Datenbanksysteme 1 Semesterklausur Datenbanksysteme 1 SS 2015 Hinweise: Die Bearbeitungszeit

Mehr

Datenbanksysteme I Anfragebearbeitung und -optimierung. 27.6.2011 Felix Naumann

Datenbanksysteme I Anfragebearbeitung und -optimierung. 27.6.2011 Felix Naumann Datenbanksysteme I Anfragebearbeitung und -optimierung 27.6.2011 Felix Naumann Anfragebearbeitung Grundproblem 2 Anfragen sind deklarativ. SQL, Relationale Algebra Anfragen müssen in ausführbare (prozedurale)

Mehr

Objektrelationale Datenbanken

Objektrelationale Datenbanken Objektrelationale Datenbanken Ein Lehrbuch von Can Türker, Gunther Saake 1. Auflage Objektrelationale Datenbanken Türker / Saake schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG dpunkt.verlag

Mehr

Query-Optimierung. Einführung Anfrageoptimierung

Query-Optimierung. Einführung Anfrageoptimierung Query-Optimierung Prof. Dr. T. Kudraß 1 Einführung Anfrageoptimierung Von der Anfrage (WAS?) zur Auswertung (WIE?) Ziel: kostengünstiger Auswertungsweg Einsatz einer großen Anzahl von Techniken und Strategien

Mehr

DB I S. 1 Relationenalgebra [8 P.] Gegeben seien die folgenden Relationenschemata: Person(PNR, Vorname, Nachname, Geburtsdatum, Wohnort Ort.

DB I S. 1 Relationenalgebra [8 P.] Gegeben seien die folgenden Relationenschemata: Person(PNR, Vorname, Nachname, Geburtsdatum, Wohnort Ort. 1 Relationenalgebra Gegeben seien die folgenden Relationenschemata: [8 P.] Person(PNR, Vorname, Nachname, Geburtsdatum, Wohnort Ort.ONR) Jugendherberge(JNR, Name, Ort Ort.ONR, Manager Person.PNR) Ort(ONR,

Mehr

Andreas Heuer Gunter Saake Kai-Uwe Sattler. Datenbanken. kompakt

Andreas Heuer Gunter Saake Kai-Uwe Sattler. Datenbanken. kompakt Andreas Heuer Gunter Saake Kai-Uwe Sattler Datenbanken kompakt Inhaltsverzeichnis Vorwort v 1 Was sind Datenbanken 1 1.1 Warum Datenbanken 1 1.2 Datenbanksysteme 4 1.3 Anforderungen: Die Codd'schen Regeln

Mehr

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1) Vorlesung #3 SQL (Teil 1) Fahrplan Wiederholung/Zusammenfassung Relationales Modell Relationale Algebra Relationenkalkül Geschichte der Sprache SQL SQL DDL (CREATE TABLE...) SQL DML (INSERT, UPDATE, DELETE)

Mehr

Ausführungspläne, Hints, Zugriffs- und Join-Methoden

Ausführungspläne, Hints, Zugriffs- und Join-Methoden Ausarbeitung zum Vortrag Ausführungspläne, Hints, Zugriffs- und Join-Methoden Peter Matjeschk 1 / 15 Inhaltsverzeichnis 1 Anfrageverarbeitung...3 1.1 Ausführungspläne...3 1.2 Entstehung von Ausführungsplänen...3

Mehr

Antwort auf QB ist Menge von Tupeln, i-e. selbst wieder Relation (wie bei rel. Algebra) in QB "Zugriff" auf Tupel mit Tupel-Variablen

Antwort auf QB ist Menge von Tupeln, i-e. selbst wieder Relation (wie bei rel. Algebra) in QB Zugriff auf Tupel mit Tupel-Variablen Kapitel 6.3 SQL als Anfragesprache Kap. 6.3.1 Allgemeine Begriffe Identifiers: Var-Name ~ Tupel-Variable Table-Name ~ Rel., View Field-Name ~ Attribut-Bez. Key-Words: select where key is integer string

Mehr

Anfragebearbeitung 1. Vorlesung Datenbanksysteme vom

Anfragebearbeitung 1. Vorlesung Datenbanksysteme vom Vorlesung Datenbanksysteme vom 16.11.016 Anfragebearbeitung 1 Architektur eines DBMS Logische Optimierung Physische Optimierung Kostenmodelle + Tuning Architektur eines DBMS SW-Komponenten der Anfragebearbeitung

Mehr

Grundlagen der Datenbanksysteme 2 (M-DB2) Dr. Karsten Tolle

Grundlagen der Datenbanksysteme 2 (M-DB2) Dr. Karsten Tolle Grundlagen der Datenbanksysteme 2 (M-DB2) Dr. Karsten Tolle Vorwissen und so SQL Umgang mit MySQL (Workbench) Beispieldaten zum Spielen: http://download.geonames.org/export/dump/ 2 Tuningpotential DB-Interna;

Mehr

Backup und Restore von Optimizer Statistiken. Peter Stalder

Backup und Restore von Optimizer Statistiken. Peter Stalder Betrifft: Backup und Restore von Optimizer Statistiken Art der Info: Technical Info (Oktober 2002) Autor: Quelle: Peter Stalder (peter.stalder@trivadis.com) Erfahrung aus der Praxis Einleitung Kennen auch

Mehr

Aufgabe 1: Verschachtelte Anfragen

Aufgabe 1: Verschachtelte Anfragen Aufgabe 1: Verschachtelte Anfragen (1 P.) (a) Betrachten Sie folgenden Ausschnitt des TPC-H Schemas: CREATE TABLE partsupp ( ps_ availqty INT, ps_ partkey INT ); CREATE TABLE lineitem ( l_ partkey INT,

Mehr

Datenbanksysteme Kapitel 5: SQL - Grundlagen

Datenbanksysteme Kapitel 5: SQL - Grundlagen Datenbanksysteme Kapitel 5: SQL - Grundlagen Prof. Dr. Peter Chamoni Mercator School of Management Lehrstuhl für Wirtschaftsinformatik, insb. Business Intelligence Prof. Dr. Prof. Peter Dr. Chamoni Peter

Mehr

Grundlagen von Datenbanken

Grundlagen von Datenbanken Agenda: Grundlagen von Datenbanken SS 2010 3. Relationale Algebra Prof. Dr. Stefan Böttcher Universität Paderborn mit Material von Prof. Dr. Gregor Engels Grundlagen von Datenbanken - SS 2010 - Prof. Dr.

Mehr

Vorlesung Datenbankmanagementsysteme

Vorlesung Datenbankmanagementsysteme Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse & Einführung Online Analytical Processing (OLAP) (auf Basis von Oracle) Vorlesung Datenbankmanagementsysteme SQL zur Datenanalyse M. Lange, S.

Mehr

Datenbanksysteme Kapitel 5: SQL Grundlagen Teil 1

Datenbanksysteme Kapitel 5: SQL Grundlagen Teil 1 Datenbanksysteme Kapitel 5: SQL Grundlagen Teil 1 Prof. Dr. Peter Chamoni Mercator School of Management Lehrstuhl für Wirtschaftsinformatik, insb. Business Intelligence Prof. Prof. Dr. Dr. Peter Peter

Mehr

Operationen auf Relationen

Operationen auf Relationen Existierende relationale Datenbanken Beispiele von relationalen DB-Systemen: DB2, SQL (v. IBM), ORACLE, INGRES, INFORMIX, SYBASE, ACCESS u.v.a.m. Die dominierende Query-, DB-Language: SQL (Structured Query

Mehr

Übung Datenbanksysteme II Anfrageoptimierung. Maximilian Jenders. Folien basierend auf Thorsten Papenbrock

Übung Datenbanksysteme II Anfrageoptimierung. Maximilian Jenders. Folien basierend auf Thorsten Papenbrock Übung Datenbanksysteme II Anfrageoptimierung Maximilian Jenders Folien basierend auf Thorsten Papenbrock Hausaufgaben 3 + 4 2 Praktische Übung: Feedback, Probleme? Java-Aufgabe Picasso-Aufgabe Stabilität

Mehr

Einordnung. 6. Basisalgorithmen für DB-Operationen. Datenbankparameter. Datenbankparameter (II)

Einordnung. 6. Basisalgorithmen für DB-Operationen. Datenbankparameter. Datenbankparameter (II) 6. Basisalgorithmen für DB-Operationen Datenbankparameter Komplexität von Grundalgorithmen Unäre Operationen (Scan, Selektion, Projektion) Binäre Operationen: Mengenoperationen Berechnung von Verbunden

Mehr

Gruppe B Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit.

Gruppe B Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit. Gruppe B Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit. PRÜFUNG AUS DATENMODELLIERUNG (184.685) GRUPPE B 22.06.2012 Matrikelnr. Familienname

Mehr

Kapitel 5: Der SQL-Standard

Kapitel 5: Der SQL-Standard Kapitel 5: Der SQL-Standard 5. Der SQL-Standard 5. Ein Anfrageausdruck in SQL besteht aus einer SELECT-Klausel, gefolgt von einer FROM-Klausel, gefolgt von einer WHERE-Klausel. Grundform eines SFW-Ausdruck

Mehr

Diskussion: Personal (1)

Diskussion: Personal (1) Diskussion: Personal (1) ER-Diagramm: Abteilung ist beschäftigt in [0, n] [0, 1] Person Umsetzung ins Relationenmodell? Diskussion: Personal (2) Zusätzliche Regel: In jeder Abteilung (Person) muss mindestens

Mehr

Globale Statistiken im Oracle Data Warehhouse

Globale Statistiken im Oracle Data Warehhouse Globale Statistiken im Oracle Data Warehhouse Dani Schnider Principal Consultant 29. Januar 2012 Aktuelle und vollständige Optimizer-Statistiken sind Voraussetzung für die Ermittlung von guten Execution

Mehr

[ SQL] Wissen, das sich auszahlt

[  SQL] Wissen, das sich auszahlt [www.teia.de SQL] Wissen, das sich auszahlt INHALT SEITE 12 [I] 1] Einführung in SQL und relationale Datenbanken 12 14 16 18 11 1.1 1.2 Einführung Die Structured Query Language (SQL) Tabellen Mehrere Tabellen

Mehr

ACCESS SQL ACCESS SQL

ACCESS SQL ACCESS SQL ACCESS SQL Datenbankabfragen mit der Query-Language ACCESS SQL Datenbankpraxis mit Access 34 Was ist SQL Structured Query Language Bestehend aus Datendefinitionssprache (DDL) Datenmanipulationssprache

Mehr

Kapitel 6. Datenmalipulation (DML) d. h. insert, update, delete, select im Relationenmodell (in Oracle)

Kapitel 6. Datenmalipulation (DML) d. h. insert, update, delete, select im Relationenmodell (in Oracle) Kapitel 6 Datenmalipulation (DML) d. h. insert, update, delete, select im Relationenmodell (in Oracle) 1 Datenmanipulationssprache (DML) SQL Einfügen: Insert-Statement Ändern: Update-Statement Löschen:

Mehr

Datenbanksysteme I WS 17/18 HS-Übung. Universität Leipzig, Institut für Informatik Abteilung Datenbanken Prof. Dr. E. Rahm, V. Christen, M.

Datenbanksysteme I WS 17/18 HS-Übung. Universität Leipzig, Institut für Informatik Abteilung Datenbanken Prof. Dr. E. Rahm, V. Christen, M. Datenbanksysteme I WS 17/18 HS-Übung Universität Leipzig, Institut für Informatik Abteilung Datenbanken Prof. Dr. E. Rahm, V. Christen, M. Franke Kapitel 1: Definitionen Grundlegenge Begriffe IS, DB, DBMS/

Mehr

Kapitel 1 Grundlagen. Skript zur Vorlesung: Datenbanksysteme II Sommersemester Vorlesung: PD Dr. Peer Kröger

Kapitel 1 Grundlagen. Skript zur Vorlesung: Datenbanksysteme II Sommersemester Vorlesung: PD Dr. Peer Kröger LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE Skript zur Vorlesung: Datenbanksysteme II Sommersemester 2016 Kapitel 1 Grundlagen Vorlesung: PD Dr. Peer Kröger http://www.dbs.ifi.lmu.de/cms/datenbanksysteme_ii

Mehr

Physischer DB-Entwurf

Physischer DB-Entwurf Physischer DB-Entwurf Prof. Dr. T. Kudraß 1 Überblick Ausgangslage: Konzeptuelles und externes Schema sind erstellt: ER Modell, Schemaverfeinerung und Definition von Sichten Nächster Schritt: Physischer

Mehr

Oracle Indexing Primer

Oracle Indexing Primer Oracle Indexing Primer Data Warehousing and Data Mining Patrick Schäfer Berlin, 18. Dezember 2017 patrick.schaefer@hu-berlin.de Vorlesung: Übung: https://hu.berlin/vl_dwhdm17 https://hu.berlin/ue_dwhdm17

Mehr

Performance Tuning mit Oracle 12c

Performance Tuning mit Oracle 12c Performance Tuning mit Oracle 12c Agenda 1. Adaptive Execution Plans 2. Adaptive Statistics 3. SQL Plan-Direktiven 4. Neuerungen bei Statistiken 5. Konkurrierendes Sammeln von Statistiken 6. Private Session-Statistiken

Mehr

Visualisierung in Informatik und Naturwissenschaften

Visualisierung in Informatik und Naturwissenschaften Visualisierung in Informatik und Naturwissenschaften Datenbankvisualisierung Sven Bernhard 12.06.1999 Datenbankvisualisierung Datenbanktheorie in 5 Minuten Visualisierung vs. Datenbanken Visualisierung

Mehr

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich Grundlagen von SQL Informatik 2, FS18 Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich Markus Dahinden 13.05.18 1 Grundlagen von SQL (Structured Query Language)

Mehr

5/14/18. Grundlagen von SQL. Grundlagen von SQL. Google, Facebook und Co. setzen auf SQL. Whatsapp

5/14/18. Grundlagen von SQL. Grundlagen von SQL. Google, Facebook und Co. setzen auf SQL. Whatsapp 5/14/18 Grundlagen von SQL (Structured Query Language) Datenbanksprache Befehle Datenbanken und Tabellen erstellen/verändern Daten manipulieren (eingeben, ändern, löschen) Datenbank durchsuchen (Queries

Mehr

Anfrageverarbeitung und Kostenmodelle

Anfrageverarbeitung und Kostenmodelle Anfrageverarbeitung und Kostenmodelle Warum ist es wichtig? Ziel der Anfrageverarbeitung (query processing): eine Anfrage möglichst effizient auszuführen Eine effiziente Anfrageauswertung hängt davon ab,

Mehr

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion

Funktionen. Überblick über Stored Functions. Syntax zum Schreiben einer Funktion. Schreiben einer Funktion Überblick über Stored Functions Funktionen Eine Funktion ist ein benannter PL/SQL- Block, der einen Wert zurückgibt. Eine Funktion kann in der Datenbank als Objekt zur wiederholbaren Ausführung gespeichert

Mehr

Praktische SQL-Befehle 2

Praktische SQL-Befehle 2 Praktische SQL-Befehle 2 Datenbanksysteme I WiSe 2018/2019 Todor Ivanov DB1 WS2018 1 Praktische SQL-Befehle Functions Views Triggers Voraussetzung: Laptop + MySQL/ MariaDB + Workbench! DB1 WS2018 2 Airport

Mehr

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, 2017 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, 2017 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen Informatik II Vorlesung am D-BAUG der ETH Zürich Vorlesung 12, 2017 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen Datendefinition (DDL) in SQL Anlegen einer Tabelle create

Mehr

Datenbanken Implementierungstechniken SS2015

Datenbanken Implementierungstechniken SS2015 Hochschule für Technik, Wirtschaft und Kultur Leipzig Leipzig University of Applied Sciences Parallele DBMS Datenbanken Implementierungstechniken SS2015 Alexander Müller Fakultät Informatik, Mathematik

Mehr

SQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis.

SQL. Ziele. Grundlagen von SQL. Beziehung zur relationalen Algebra SELECT, FROM, WHERE. Joins ORDER BY. Aggregatfunktionen. dbis. SQL Lehr- und Forschungseinheit Datenbanken und Informationssysteme Ziele Grundlagen von SQL Beziehung zur relationalen Algebra SELECT, FROM, WHERE Joins ORDER BY Aggregatfunktionen Lehr- und Forschungseinheit

Mehr