Verteidigung - Benjamin Daeumlich

Werbung
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
Herunterladen