Beruflich Dokumente
Kultur Dokumente
Professur Datenverwaltungssysteme
Datenbanken Grundlagen
Übung 11, Thema 6:
Optimierung
dvs.informatik.tu-chemnitz.de
Teil A: Lösungen
dvs.informatik.tu-chemnitz.de
Teil B: Theorie
dvs.informatik.tu-chemnitz.de
4 www.tu-chemnitz.de/informatik/DVS
Fakultät für Informatik
Professur Datenverwaltungssysteme
Teil C: Live
dvs.informatik.tu-chemnitz.de
Aufgabe 1
Betrachte die durch den folgenden Operatorbaum dargestellte Anfrage zu den Relationen Kunde
und Auftrag, zu welchen weiterhin bekannt sind:
• Kunde (Name, Kadr, Konto) umfasst π[Name, Konto]
100 Tupel, wovon 5 auf eine Seite passen |
• Auftrag (KName, Ware, Menge) umfasst σ[Name = KName ∧ Ware = 'Kaffee‘]
10.000 Tupel, wovon 10 auf eine Seite passen |
• 50 Aufträge für die Ware Kaffee existieren ×
• 50 Tupel (KName, Konto) passen auf eine Seite / \
• 3 Tupel Kunde × Auftrag passen auf eine Seite Kunde Auftrag
• Für jede Relation steht ein Puffer für genau eine Seite zur Verfügung
• es werden nur ganze Tupel auf einer Seite gespeichert
• ein Seitenzugriff dauert lesend 1 ms und schreibend 2 ms
a) Berechne die Zahl der Seitenzugriffe (Lesen, Schreiben) für die Auswertung des
angegebenen Operatorbaums bei Zwischenspeicherung aller Zwischenergebnisse.
b) Optimiere den Operatorbaum und berechne die Seitenzugriffszahl erneut.
c) Um welchen Faktor ist das optimierte Vorgehen schneller?
6 www.tu-chemnitz.de/informatik/DVS
Fakultät für Informatik
Professur Datenverwaltungssysteme
Aufgabe
Musterlösung
• Kunde (Name, Kadr, Konto) umfasst 100 Tupel, wovon 5 auf eine Seite passen
• Auftrag (KName, Ware, Menge) umfasst 10.000 Tupel, wovon 10 auf eine Seite passen
• 50 Aufträge für die Ware Kaffee existieren
• 50 Tupel (KName, Konto) passen auf eine Seite
• 3 Tupel Kunde × Auftrag passen auf eine Seite
a) Berechne die Zahl der Seitenzugriffe (Lesen, Schreiben) für die Auswertung des angegebenen Operatorbaums
bei Zwischenspeicherung aller Zwischenergebnisse.
R1 := Kunde × Auftrag π[Name, Konto]
Lesen: (100 / 5 * 10.000 / 10) = 20.000 |
Schreiben: (100 * 10.000) / 3 = 333.334 σ[Name = KName ∧ Ware = 'Kaffee']
R2 := σ[Name = KName ∧ Ware = 'Kaffee'] R1 |
Lesen: 333.334 ×
Schreiben: 50 / 3 = 17 / \
ERG := π[Name, Konto] R2 Kunde Auftrag
Lesen: 17
Schreiben: 50 / 50 = 1
Seitenzugriffe: 353.351 (Lesen) + 333.352 (Schreiben) = 686.703 (Gesamt)
7 www.tu-chemnitz.de/informatik/DVS
Fakultät für Informatik
Professur Datenverwaltungssysteme
Aufgabe
Musterlösung
• Kunde (Name, Kadr, Konto) umfasst 100 Tupel, wovon 5 auf eine Seite passen
• Auftrag (KName, Ware, Menge) umfasst 10.000 Tupel, wovon 10 auf eine Seite passen
• 50 Aufträge für die Ware Kaffee existieren
• 50 Tupel (KName, Konto) passen auf eine Seite
• 3 Tupel Kunde × Auftrag passen auf eine Seite
b) Optimiere den Operatorbaum und berechne die Seitenzugriffszahl erneut.
R1 := σ[Ware = 'Kaffee'] Auftrag π[Name, Konto]
Lesen: 10.000 / 10 = 1.000 |
Schreiben: 50 / 10 = 5 ⋈[Name = KName]
R2 := Kunde ⋈[Name = KName] R1 / \
Lesen: 5 * 100 / 5 = 100 Kunde σ[Ware = 'Kaffee']
Schreiben: 50 / 3 = 17 |
ERG := π[Name, Konto] R2 Auftrag
Lesen: 17
Schreiben: 50 / 50 = 1
Seitenzugriffe: 1.117 (Lesen) + 23 (Schreiben) = 1.140 (Gesamt)
8 www.tu-chemnitz.de/informatik/DVS
Fakultät für Informatik
Professur Datenverwaltungssysteme
Aufgabe
Musterlösung
Hinweis: ein Seitenzugriff dauert lesend 1 ms und schreibend 2 ms
c)Um welchen Faktor ist das optimierte Vorgehen schneller?
Dauer ursprünglich:
353.351 * 1 ms + 333.352 * 2 ms = 1.020.055 ms (17 min)
Dauer optimiert:
1.117 * 1 ms + 23 * 2 ms = 1.163 ms (~1,2 sec)
Faktor schneller:
1.020.055 ms / 1.163 ms = 877
9 www.tu-chemnitz.de/informatik/DVS
Fakultät für Informatik
Professur Datenverwaltungssysteme
Teil D: Hausaufgaben
dvs.informatik.tu-chemnitz.de
Frei