05.07.2005Elena Hensinger1 Green Query Optimization using Query Clustering Seminar zu...

download 05.07.2005Elena Hensinger1 Green Query Optimization using Query Clustering Seminar zu Datenbanksystemen Universit¤t Hannover Sommersemester 2005 Elena

of 43

  • date post

    05-Apr-2015
  • Category

    Documents

  • view

    102
  • download

    0

Embed Size (px)

Transcript of 05.07.2005Elena Hensinger1 Green Query Optimization using Query Clustering Seminar zu...

  • Folie 1
  • 05.07.2005Elena Hensinger1 Green Query Optimization using Query Clustering Seminar zu Datenbanksystemen Universitt Hannover Sommersemester 2005 Elena Hensinger ehensinger@htp-tel.de 05.07.2005
  • Folie 2
  • Elena Hensinger 2 Einleitung Idee des Plan Recycling Darstellung von Anfragen Vergleich von Anfragen Gruppierung Plandiagramm PLASTIC Leistungsfhigkeit und Einschrnkungen Vernderungen und Ausblick Inhaltsverzeichnis
  • Folie 3
  • 05.07.2005 Elena Hensinger 3 Optimierung von Ausfhrungsplnen ist ein recheninten- siver Prozess, insbesondere fr sehr groe Datenban- ken oder komplexe Anfragen Viele Plne mssen verglichen werden Auswahl des besten Planes In der Regel wird fr jede Anfrage ein neuer Plan gene- riert Ausfhrungsplne Optimierer Anfrage Q Plan mit minimalen Kosten fr Anfrage Q DB-KatalogeKostenmodell
  • Folie 4
  • 05.07.2005 Elena Hensinger 4 Oracle Optimierer: stored outlines Speicherung von SQL-Anfragen auf textueller Basis und den dazugehrigen Ausfhrungs- plnen Wiederbenutzung von Plnen nur mglich, wenn starke textuelle hnlichkeit zwischen der gespeicherten und der neuen Anfrage Plan Recycling ?
  • Folie 5
  • 05.07.2005 Elena Hensinger 5 Neuer Ansatz Vergleichen von Anfragen nicht auf Grund ihres Textes, sondern auf Grund von fr einen Ausfhrungsplan Ausschlag gebenden Eigenschaften Beobachtung: Anfragen mit unterschiedlichen Selektionen, Projektionen, Joinprdikaten und Tabellen knnen denselben Operatorbaum haben Je hnlicher sich zwei Anfragen sind, desto wahrscheinlicher ist es, dass der Optimierer fr sie gleiche Ausfhrungsplne generiert
  • Folie 6
  • 05.07.2005 Elena Hensinger 6 Alle Anfragen werden auf Grund ihrer Merkmale in Gruppen eingeteilt Jede Gruppe hat einen Reprsentanten, dessen vom Optimierer generierte Ausfhrungsplanvorlage gespei- chert wird Ist eine neue Anfrage hnlich mit einem Reprsen- tanten, so wird seine gespeicherte Planvorlage an die neue Anfrage angepasst und benutzt Ist eine neue Anfrage unhnlich, so wird wie blich ein Plan vom Optimierer generiert Grundstzlicher Ablauf
  • Folie 7
  • 05.07.2005 Elena Hensinger 7 Ausfhrungsplan, bei dem alle Datenbankope- ratoren (z.B. Sortierung und Joins) beibehalten wurden, die bestimmten Werte der Eingaben fr diese, wie Tabellennamen und Attributnamen, durch Bindevariablen ersetzt wurden Ausfhrungsplanvorlage A B AB :1 :2 :1:2
  • Folie 8
  • 05.07.2005 Elena Hensinger 8 Die Hauptfrage: Welche Eigenschaften charakterisieren eine Anfrage und sind gleichzeitig ausschlaggebend fr die Auswahl eines Ausfhrungsplanes? Durch unterschiedliche Arten von Joins (z.B. Nested-Loops, Merge-Join) und ihre Anord- nungsreihenfolgen mit den unterschiedlichen Operationen (Selektion, Projektion und Gruppierung) gibt es viele mgliche Ausfh- rungsplne Merkmalsvektor
  • Folie 9
  • 05.07.2005 Elena Hensinger 9 Die Kosten fr die Ausfhrungsplne hngen von den Eigenschaften der in der Anfrage benutzten Tabellen und der Anfrageprdikate ab Ntig sind also sowohl die fr die Anfrage typischen strukturellen Informationen wie z. B. die Anzahl der Tabellen, als auch spezifische Eigenschaften der benutzten Tabellen wie z. B. das Vorhandensein und die Benutzung von Indexen Merkmalsvektor
  • Folie 10
  • 05.07.2005 Elena Hensinger 10 Informationen werden direkt aus der Anfrage und den Katalogen des Datanbankmanage- mentsystems gewonnen Solche charakterisierenden Merkmale wurden von Haritsa et al. 2002 vorgestellt Aufteilung in strukturelle und statistische Merkmale Merkmalsvektor
  • Folie 11
  • 05.07.2005 Elena Hensinger 11 werden aus der Anfrage gewonnen Degree of Table (DT): Anzahl der Joinprdikate fr eine Tabelle (Prdikate, die sich auf die Spalten der zu joinenden Tabellen beziehen); 1 fr einzelne Tabelle, 0 fr Tabelle ohne Joinprdikate Kreuzprodukt Degree-Sequence of a query (DS): Ein Vektor aus den DTs der einzelnen Tabellen Number of join predicates (NJC): Gesamtanzahl der Joinprdikate in der Anfrage Strukturelle Eigenschaften (1)
  • Folie 12
  • 05.07.2005 Elena Hensinger 12 Join Predicate Index Counts (JIC): Ein Joinprdikat hat eine index characteristic 0, 1, oder 2, wenn es 0, 1 oder 2 indexierte Teile hat Fr jede Anfrage wird die Anzahl der Joinprdikate be- zglich der jeweiligen charakteristischen Werte gezhlt A.a B.b {x,y,z} Index Flag of a Table (IF): zeigt an, ob man auf einer Tabelle ausschlielich mit Indexzugriffen arbeiten kann Gdw. fr eine Tabelle alle Selektionsprdikate und Pro- jektionsattribute durch den Zugriff auf einen gemeinsa- men Index ausgewertet werden knnen Strukturelle Eigenschaften (2)
  • Folie 13
  • 05.07.2005 Elena Hensinger 13 Nicht immer, wenn in der WHERE-Bedingung auf einem Prdikat ein Index existiert, kann dieser benutzt werden Prdikat muss auch SARGable (Search-ARGument- able) sein Beispiele fr SARGable: =, < Beispiele fr NON-SARGable: IS NULL, , NOT EXISTS, NOT LIKE Predicate Counts of a Table (PC): Zhler fr indexierte SARGable- und NON-SARGable-Prdikate Number of Tables (NT): Anzahl der Tabellen in der Anfrage Strukturelle Eigenschaften (3)
  • Folie 14
  • 05.07.2005 Elena Hensinger 14 werden aus den Tabellenstatistiken in dem Systemkata- logen gewonnen: Table Size (TS): die Gre der Tabelle in Tupeln Effective Table Size (ETS): effektive Gre der in ei- nem Join teilnehmenden Tabelle Gewonnen durch Abschtzungen und Statistiken aus den Systemkatalogen und den Einfluss des Herunter- schiebens (push down) der Selektionen und Projektionen im Ausfhrungsplan Statistische Eigenschaften
  • Folie 15
  • 05.07.2005 Elena Hensinger 15 Select A.a1, B.b1 from A, B where A.a1 = B.b1 and B.b2 < 50; Indexe ber A.a1, B.b2 Globale Eigenschaften NT2 DS(1,1) NJP1 JIC [0,1,2](0,1,0) PCsarg2 PCnsarg0 NT = Anzahl Tabellen DS = Vektor der Grade der Tabellen NJP = Anzahl Joinprdikate JIC = Join index count; wie viele Joinprdikate indexiert PC = Eigenschaften der indexierten Prdikate fr Benutzung der Indexe 1. Beispiel
  • Folie 16
  • 05.07.2005 Elena Hensinger 16 Select A.a1, B.b1 from A, B where A.a1 = B.b1 and B.b2 < 50; Indexe ber A.a1, B.b2 Selektivitt von B.b2
  • 05.07.2005 Elena Hensinger 22 dist A,C = 0,7 * |2000-1500| + 0,3 * |2000-1500| |2000| dist A,D = 0,7 * |2000-4000| + 0,3 * |2000-2800| |4000| dist B,C = 0,7 * |4000-1500| + 0,3 * |2000-1500| |4000| dist B,D = 0,7 * |4000-4000| + 0,3 * |2000-2800| |4000| Mindestdistanzen von 1:1-Abbildungen: {A, C} + {B, D} = 0,25 + 0,06 = 0,31 > 0,01 AB 2000TS4000 2000ETS2000 CD 1500TS4000 1500ETS2800 dist A,C dist A,D dist B,C dist B,D 0,250,410,4750,06 2. Beispiel
  • Folie 23
  • 05.07.2005 Elena Hensinger 23 Wann ist das Ergebnis < 0,01? Tabellen A und B unverndert Gre von Tabelle C : 1996 Selektivitt von D.d2 = 50 : 0,5265 AB 2000TS4000 2000ETS2000 dist A,C = 0,002 dist A,D = 0,358 dist B,C = 0,351 dist B,D = 0,00795 Mglichkeiten: {A, D} + {B, C} = 0,709 {A, C} + {B, D} = 0,00995 < 0,01 CD 1996TS4000 1996ETS2106 3. Beispiel
  • Folie 24
  • 05.07.2005 Elena Hensinger 24 Daten / Objekte in Gruppen segmentieren Cluster und Anzahl knnen vorgegeben sein oder auch nicht Ideal: Starke hnlichkeit der Objekte innerhalb eines Clusters, starke Unhnlichkeit zwischen den Objekten in den einzelnen Clustern Anzahl Cluster vorgegeben partitionierende Verfahren Anzahl nicht vorgegeben hierarchische Verfahren Clustering
  • Folie 25
  • 05.07.2005 Elena Hensinger 25 1.Objekt wird Leader / Anfhrer eines Clusters Alle weiteren Objekte werden mit den vorhandenen Leadern durch eine Distanzfunktion verglichen Besteht hnlichkeit, dann Einordnung in den Cluster des Leaders mit der kleinsten Distanz zum Objekt Keine hnlichkeit Objekt wird Leader eines neuen Clusters Ende, wenn alle Objekte abgearbeitet sind Leader-Algorithmus
  • Folie 26
  • 05.07.2005 Elena Hensinger 26 Bildung der Cluster hngt von der Bearbeitungsreihen- folge der Objekte ab Keine berarbeitung aller Cluster beim Erstellen eines neuen Clusters ntig Laufzeit O(k*n) mit k Clustern und n Anfragen In der Regel k