Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken Benjamin Daeumlich Humboldt-Universität zu Berlin Institut für Informatik 17. März 2010 Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 1 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung 1 Einführung 2 Übersicht - SQLIndexWizard 3 Komponente 1 - Workload-Compression 4 Komponente 2 - Index-Advisor 5 Evaluierung 6 Zusammenfassung Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 2 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Begriffe Hintergrund Motivation & Zielstellung Einführung Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 3 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Begriffe Hintergrund Motivation & Zielstellung Indexauswahl: Bestimmung einer möglichst nützlichen Menge von Indizes für eine gegebene Menge von Anfragen Workload-Compression: Komprimierung einer gegebenen Menge von Anfragen bezüglich eines Kriteriums Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 4 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Begriffe Hintergrund Motivation & Zielstellung Hintergrund: vorhandenes System: DirXWiz (LDAP-Anfragesprache) Besonderheiten: Workload-Compression über Anfragevektoren gleiche Betrachtungsweise von vorhandenen und potentiell nützlichen Indizes bei der Indexauswahl Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 5 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Begriffe Hintergrund Motivation & Zielstellung Motivation & Zielstellung: Adaption der Konzepte des DirXWiz (LDAP) auf relationale Sprache SQL Erweiterung der Konzepte durch eigene Ideen Entwicklung eines Ähnlichkeitsmaßes für SQL-Anfragen Beispielsystem: DB2R Herausforderung: Umgang mit den Systemtabellen von DB2R Implementierung des SQLIndexWizard Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 6 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Architektur Funktionalität und Einschränkungen Vergleich zu anderen Werkzeugen Übersicht - SQLIndexWizard Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 7 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Architektur Funktionalität und Einschränkungen Vergleich zu anderen Werkzeugen Architektur: Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 8 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Architektur Funktionalität und Einschränkungen Vergleich zu anderen Werkzeugen Funktionalität: Einlesen von SQL-Anfragen (initiales Workload) Komprimierung des initialen Workloads (Verwendung verschiedener Methoden) Ermittlung und Bewertung der nützlichen Indizes Bestimmung einer möglichst optimalen Indexkonfiguration (bezüglich der Laufzeit) Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 9 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Architektur Funktionalität und Einschränkungen Vergleich zu anderen Werkzeugen Einschränkungen: Betrachtung einer Teilmenge der Sprache SQL keine Spalten vom Typ VARCHAR, CHAR keine Mehrattributindizes keine Berücksichtigung von Modifikationsanfragen Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 10 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Architektur Funktionalität und Einschränkungen Vergleich zu anderen Werkzeugen Vergleich zu anderen Werkzeugen: SQLIndexWizard SQL Ja Ja Sprache Indexauswahl WorkloadCompression Mehrattribut- Nein indizes Benjamin Daeumlich DirXWiz MS Auto Admin LDAP SQL Ja Ja Ja Nein DB2R Design Advisor SQL Ja Nein Nein Ja Ja Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 11 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Architektur Partitionierung Ähnlichkeitsbestimmung der WHERE-Klauseln Clustering-Algorithmen Komponente 1 Workload-Compression Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 12 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Architektur Partitionierung Ähnlichkeitsbestimmung der WHERE-Klauseln Clustering-Algorithmen Architektur: Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 13 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Architektur Partitionierung Ähnlichkeitsbestimmung der WHERE-Klauseln Clustering-Algorithmen Partitionierung: Einteilung in Gruppen potentiell ähnlicher Anfragen (Partitionen) Kriterien für alle Klauseln einer SQL-Anfrage entwickelt unter Zuhilfenahme der von DB2R erzeugten Ausführungspläne Beispiele: FROM-Klausel: SELECT-Klausel: nur identische Tabellen Unterschiede z. B. zwischen SUM(A) und MAX(A) GROUP BY-Klausel: nur identische Spalten Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 14 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Architektur Partitionierung Ähnlichkeitsbestimmung der WHERE-Klauseln Clustering-Algorithmen Ähnlichkeitsbestimmung der WHERE-Klauseln: Anfragevektoren jede Spalte der angefragten Tabellen erhält (mindestens) eine Dimension im Anfragevektor 3 verschiedene Varianten entwickelt Ähnlichkeitsmaß zwischen den Anfragevektoren: Kosinus Strukturvariante entnommen aus der Literatur nur strukturell komplett identische Anfragen werden verglichen keine Ähnlichkeit (Wert 0) bei abweichender Struktur Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 15 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Architektur Partitionierung Ähnlichkeitsbestimmung der WHERE-Klauseln Clustering-Algorithmen Beispiel Anfragevektoren (1) P Dimensionen: dim(A) = Tabelle: R(A, B, C) PA (1 − Sel(PA )) Anfragen (Q1 bis Q3 ): SELECT * FROM R WHERE R . B SELECT * FROM R WHERE R . A SELECT * FROM R WHERE R . A AND Benjamin Daeumlich > 6 = 6 = 5 R.C AND R . C > 4 AND R . B > 5 AND R . B > 6 > 1 Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 16 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Architektur Partitionierung Ähnlichkeitsbestimmung der WHERE-Klauseln Clustering-Algorithmen Beispiel Anfragevektoren (2) Anfragen: SELECT * FROM R WHERE R . B SELECT * FROM R WHERE R . A SELECT * FROM R WHERE R . A AND Benjamin Daeumlich > 6 = 6 = 5 R.C AND R . C > 4 AND R . B > 5 AND R . B > 6 > 1 Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 17 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Architektur Partitionierung Ähnlichkeitsbestimmung der WHERE-Klauseln Clustering-Algorithmen Beispiel Anfragevektoren (2) Anfragen: SELECT * FROM R WHERE R . B SELECT * FROM R WHERE R . A SELECT * FROM R WHERE R . A AND > 6 = 6 = 5 R.C AND R . C > 4 AND R . B > 5 AND R . B > 6 > 1 Selektivitäten: Sel(R.A = 6) = 0, 1 ; Sel(R.A = 5) = 0, 1 Sel(R.B > 6) = 0, 3 ; Sel(R.B > 5) = 0, 4 Sel(R.C > 4) = 0, 3 ; Sel(R.C > 1) = 0, 9 Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 17 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Architektur Partitionierung Ähnlichkeitsbestimmung der WHERE-Klauseln Clustering-Algorithmen Beispiel Anfragevektoren (2) Anfragen: SELECT * FROM R WHERE R . B SELECT * FROM R WHERE R . A SELECT * FROM R WHERE R . A AND > 6 = 6 = 5 R.C AND R . C > 4 AND R . B > 5 AND R . B > 6 > 1 Selektivitäten: Sel(R.A = 6) = 0, 1 ; Sel(R.A = 5) = 0, 1 Sel(R.B > 6) = 0, 3 ; Sel(R.B > 5) = 0, 4 Sel(R.C > 4) = 0, 3 ; Sel(R.C > 1) = 0, 9 Vektoren: 0 0, 9 0, 9 V1 = 0, 7 , V2 = 0, 6 , V3 = 0, 7 0, 7 0 0, 1 Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 17 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Architektur Partitionierung Ähnlichkeitsbestimmung der WHERE-Klauseln Clustering-Algorithmen Beispiel Anfragevektoren (3) Ähnlichkeit: Benjamin Daeumlich sim(Qi , Qj ) = cos(Vi , Vj ) = Vi ·Vj |Vi |·|Vj | Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 18 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Architektur Partitionierung Ähnlichkeitsbestimmung der WHERE-Klauseln Clustering-Algorithmen Beispiel Anfragevektoren (3) Ähnlichkeit: sim(Qi , Qj ) = cos(Vi , Vj ) = Vi ·Vj |Vi |·|Vj | Vektoren: 0 0, 9 0, 9 V1 = 0, 7 , V2 = 0, 6 , V3 = 0, 7 0, 7 0 0, 1 Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 18 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Architektur Partitionierung Ähnlichkeitsbestimmung der WHERE-Klauseln Clustering-Algorithmen Beispiel Anfragevektoren (3) Ähnlichkeit: sim(Qi , Qj ) = cos(Vi , Vj ) = Vi ·Vj |Vi |·|Vj | Vektoren: 0 0, 9 0, 9 V1 = 0, 7 , V2 = 0, 6 , V3 = 0, 7 0, 7 0 0, 1 Ergebnis: √ 2 sim(Q1 , Q2 ) = √0·0,9+0,7·0,6+0,7·0 2 2 0,7 +0,7 · 0,9 +0,62 ≈ 0, 4212 sim(Q2 , Q3 ) ≈ 0, 98 sim(Q1 , Q3 ) ≈ 0, 43 Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 18 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Architektur Partitionierung Ähnlichkeitsbestimmung der WHERE-Klauseln Clustering-Algorithmen Beispiel Anfragevektoren (4) Anfragen: SELECT * FROM R WHERE R . B SELECT * FROM R WHERE R . A SELECT * FROM R WHERE R . A AND > 6 = 6 = 5 R.C AND R . C > 4 AND R . B > 5 AND R . B > 6 > 1 Selektivitäten: Sel(R.A = 6) = 0, 1 ; Sel(R.A = 5) = 0, 1 Sel(R.B > 6) = 0, 3 ; Sel(R.B > 5) = 0, 4 Sel(R.C > 4) = 0, 3 ; Sel(R.C > 1) = 0, 9 Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 19 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Architektur Partitionierung Ähnlichkeitsbestimmung der WHERE-Klauseln Clustering-Algorithmen Beispiel Anfragevektoren (4) Anfragen: SELECT * FROM R WHERE R . B SELECT * FROM R WHERE R . A SELECT * FROM R WHERE R . A AND > 6 = 6 = 5 R.C AND R . C > 4 AND R . B > 5 AND R . B > 6 > 1 Selektivitäten: Sel(R.A = 6) = 0, 1 ; Sel(R.A = 5) = 0, 1 Sel(R.B > 6) = 0, 3 ; Sel(R.B > 5) = 0, 4 Sel(R.C > 4) = 0, 3 ; Sel(R.C > 1) = 0, 9 Q1 : Indizes auf R.B und R.C bedingt nützlich Q2 : Index auf R.A nützlich, Index auf R.B bedingt nützlich Q3 : wie Q2 , da Index auf R.C nicht nützlich Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 19 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Architektur Partitionierung Ähnlichkeitsbestimmung der WHERE-Klauseln Clustering-Algorithmen Clustering Einteilung der Anfragen in Gruppen entsprechend ihrer Ähnlichkeit zueinander Bestimmung eines Repräsentanten für jede Gruppe Durchführung für jede Partition benutzte Algorithmen: Leader-Algorithmus k-Means-Algorithmus Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 20 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Architektur Partitionierung Ähnlichkeitsbestimmung der WHERE-Klauseln Clustering-Algorithmen Leader-Algorithmus Eingabe: n Anfragevektoren V1 , . . . , Vn , Schwellenwert ρ Ausgabe: Repräsentanten des Clusterings 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: Erzeuge neuen Cluster mit V1 als Leader for i = 2 to n do Leader Vl mit größter Ähnlichkeit zu Vi finden if (sim(Qi , Ql ) ≥ ρ) then Lege Vi in den Cluster von Vl else Erzeuge neuen Cluster mit Vi als Leader end if end for return Menge aller Leader Vl Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 21 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Architektur Partitionierung Ähnlichkeitsbestimmung der WHERE-Klauseln Clustering-Algorithmen k-Means-Algorithmus Eingabe: n Anfragevektoren V1 , . . . , Vn , Clusteranzahl k Ausgabe: Repräsentanten des Clusterings 1: 2: 3: 4: 5: 6: Setze zufällig k Anfragevektoren als Clustermittelpunkte while (Zuordnung ändert sich) do Ordne jedem Anfragevektor den nächstgelegenen Mittelpunkt zu Setze neue Mittelpunkte in den Schwerpunkt der zugehörigen Anfragevektoren end while return Menge aller Mittelpunkte Vm Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 22 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Architektur Bewertung der Indizes Indexauswahl Komponente 2 Index-Advisor Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 23 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Architektur Bewertung der Indizes Indexauswahl Architektur: Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 24 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Architektur Bewertung der Indizes Indexauswahl Bewertung: zurückgreifen auf DB2R Design Advisor Benutzung virtueller Indizes Vergleich: Plan mit vorhandenen Indizes und Plan mit virtuellen Indizes Profit: p(I ) = COSTINITIAL −COSTVIRTUAL |Indizes| Schwerpunkt lag auf technischer Umsetzung Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 25 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Architektur Bewertung der Indizes Indexauswahl Indexauswahl: zurückzuführen auf Rucksack-Problem Verhältnis aus Profit und Indexgröße als Grundlage Verwendung bekannter Algorithmen: Greedy-Algorithmus dynamische Programmierung Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 26 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Implementation Testdaten Ergebnisse Evaluierung Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 27 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Implementation Testdaten Ergebnisse Architektur der Implementation: Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 28 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Implementation Testdaten Ergebnisse Besonderheiten: Umformung der Anfragen in CNF bzw. DNF möglich Clustering: Leader- und k-Means-Algorithmus 4 verschiedene Methoden für die Ähnlichkeitsbestimmung der WHERE-Klausel Indexauswahl: Greedy-Algorithmus oder dynamische Programmierung Verwendung eines von DB2R verschiedenen DBMS durch Austausch weniger Klassen möglich Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 29 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Implementation Testdaten Ergebnisse Testdaten: TPC-H Schema 8 Tabellen, 8660030 Tupel 10000 zufällig generierte Anfragen Speicherplatzbeschränkung: 80 MB Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 30 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Implementation Testdaten Ergebnisse Workload-Compression-Komponente: Methoden zur Ähnlichkeitsbestimmung Komprimierung variiert zwischen den Methoden nahezu gleiche Indexkonfigurationen Clustering-Algorithmen: gleicher Komprimierungsgrad gleiche Indexkonfiguration nahezu gleiche Laufzeit Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 31 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Implementation Testdaten Ergebnisse Index-Advisor: Vergleich der Laufzeit: Laufzeit Werkzeug Laufzeit Anfragen Gesamtlaufzeit keine Indizes 0:00 Std 38:22 Std 38:22 Std SQLIndexWizard 0:09 Std 30:12 Std 30:21 Std ca. 22% Zeitersparnis Vergleich der Algorithmen für die Indexauswahl Laufzeit der dynamischen Programmierung ca. 10 Mal so hoch wie die des Greedy-Algorithmus gleiche Indexkonfigurationen werden empfohlen Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 32 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Implementation Testdaten Ergebnisse Vergleich mit DB2R Design Advisor: Vergleich der Laufzeit: Laufzeit Werkzeug Laufzeit Anfragen Gesamtlaufzeit SQLIndexWizard DB2R Design Advisor 0:09 Std 0:12 Std 30:12 Std 28:34 Std 30:21 Std 28:46 Std ca. 5% Zeitersparnis Indexkonfiguration des DB2R Design Advisors enthält Mehrattributindizes Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 33 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Zusammenfassung Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 34 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Zusammenfassung: Konzepte des DirXWiz (LDAP) auf relationale Sprache SQL übertragen Konzepte durch eigene Ideen verfeinert (z. B. neue Varianten bei der Ähnlichkeitsbestimmung) Herausforderung: Umgang mit den Systemtabellen von DB2R komplexe Implementation Evaluierung wurde durchgeführt Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 35 / 36 Einführung Übersicht - SQLIndexWizard Komponente 1 - Workload-Compression Komponente 2 - Index-Advisor Evaluierung Zusammenfassung Vielen Dank für die Aufmerksamkeit! Benjamin Daeumlich Entwicklung eines Workload-Compressing-Index-Wizards für relationale Datenbanken 36 / 36