Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Berndt Färber Geändert vor über 9 Jahren
1
Vorlesung Datenbanksysteme vom 13.10.2004 Anfragebearbeitung Logische Optimierung
2
2 Architektur eines DBMS DML-CompilerDDL-Compiler Abfrageoptimierung Datenbankmanager Schemaverwaltung Dateiverwaltung LogdateienIndexeDatenbasisData Dictionary Mehrbenutzersynchronisation Fehlerbehandlung Interactive AbfrageAPI/PräcompilerVerwaltungswerkzeug
3
3 Ablauf der Anfrageoptimierung Scanner Parser Sichtenauflösung Anfrage- Optimierer Codeerzeugung Ausführung Deklarative Anfrage Algebraischer Ausdruck Auswertungs- Plan (QEP)
4
4 Kanonische Übersetzung select A1,..., An from R1,..., Rk where P R1R2 R3 Rk PP A1,..., An
5
5 Kanonische Übersetzung select Titel from Professoren, Vorlesungen where Name = ´Popper´ and PersNr = gelesenVon Professoren Vorlesungen Name = ´Popper´ and PersNr=gelesenVon Titel Titel ( Name = ´Popper´ and PersNr=gelesenVon (Professoren Vorlesungen))
6
6 Erste Optimierungsidee select Titel from Professoren, Vorlesungen where Name = ´Popper´ and PersNr = gelesenVon Professoren Vorlesungen PersNr=gelesenVon Titel Titel ( PersNr=gelesenVon (( Name = ´Popper´ Professoren) Vorlesungen)) Name = ´Popper´
7
7 Grundsätze: Sehr hohes Abstraktionsniveau der mengenorientierten Schnittstelle (SQL). Sie ist deklarativ, nicht-prozedural, d.h. es wird spezifiziert, was man finden möchte, aber nicht wie. Das wie bestimmt sich aus der Abbildung der mengenorientierten Operatoren auf Schnittstellen- Operatoren der internen Ebene (Zugriff auf Datensätze in Dateien, Einfügen/Entfernen interner Datensätze, Modifizieren interner Datensätze). Zu einem was kann es zahlreiche wie‘s geben: effiziente Anfrageauswertung durch Anfrageoptimierung. i.Allg. wird aber nicht die optimale Auswertungsstrategie gesucht (bzw. gefunden) sondern eine einigermaßen effiziente Variante Ziel: „avoiding the worst case“ Optimierung von Datenbank- Anfragen
8
8 1. Aufbrechen von Konjunktionen im Selektionsprädikat c 1 c 2 ... c n (R ) c 1 ( c 2 (…( c n (R )) …)) 2. ist kommutativ c 1 ( c 2 ((R )) c 2 ( c 1 ((R )) 3. -Kaskaden: Falls L 1 L 2 … L n, dann gilt L 1 ( L 2 (…( L n (R )) …)) L 1 (R ) 4. Vertauschen von und Falls die Selektion sich nur auf die Attribute A 1, …, A n der Projektionsliste bezieht, können die beiden Operationen vertauscht werden A 1, …, A n ( c (R )) c ( A 1, …, A n (R )) 5. , , und A sind kommutativ R A c S S A c R Äquivalenzerhaltende Transformationsregeln
9
9 6. Vertauschen von mit A Falls das Selektionsprädikat c nur auf Attribute der Relation R zugreift, kann man die beiden Operationen vertauschen: c (R A j S) c (R) A j S Falls das Selektionsprädikat c eine Konjunktion der Form „c 1 c 2 “ ist und c 1 sich nur auf Attribute aus R und c 2 sich nur auf Attribute aus S bezieht, gilt folgende Äquivalenz: c (R A j S) c (R) A j ( c 2 (S)) Äquivalenzerhaltende Transformationsregeln
10
10 7. Vertauschung von mit A Die Projektionsliste L sei: L = {A 1,…,A n, B 1,…,B m }, wobei A i Attribute aus R und B i Attribute aus S seien. Falls sich das Joinprädikat c nur auf Attribute aus L bezieht, gilt folgende Umformung: L (R A c S) ( A 1, …, A n (R)) A c ( B 1, …, B n (S)) Falls das Joinprädikat sich auf weitere Attribute, sagen wir A 1 ', …, A p ', aus R und B 1 ', …, B q ' aus S bezieht, müssen diese für die Join-Operation erhalten bleiben und können erst danach herausprojiziert werden: L (R A c S) L ( A 1, …, A n, A 1 ‘, …, A n ‘ (R) A c B 1, …, B n, B 1 ‘, …, B n ‘ (R)) Für die -Operation gibt es kein Prädikat, so dass die Einschränkung entfällt. Äquivalenzerhaltende Transformationsregeln
11
11 8. Die Operationen A, , , sind jeweils (einzeln betrachtet) assoziativ. Wenn also eine dieser Operationen bezeichnet, so gilt: (R S ) T R (S T ) 9. Die Operation ist distributiv mit , , . Falls eine dieser Operationen bezeichnet, gilt: c (R S) ( c (R)) ( c (S)) 10. Die Operation ist distributiv mit . c (R S) ( c (R)) ( c (S)) Äquivalenzerhaltende Transformationsregeln
12
12 11. Die Join- und/oder Selektionsprädikate können mittels de Morgan's Regeln umgeformt werden: (c 1 c 2 ) ( c 1 ) ( c 2 ) (c 1 c 2 ) ( c 1 ) ( c 2 ) 12. Ein kartesisches Produkt, das von einer Selektions- Operation gefolgt wird, deren Selektionsprädikat Attribute aus beiden Operanden des kartesischen Produktes enthält, kann in eine Joinoperation umgeformt werden. Sei c eine Bedingung der Form A B, mit A ein Attribut von R und B ein Attribut aus S. c (R S ) R A c S Äquivalenzerhaltende Transformationsregeln
13
13 1. Mittels Regel 1 werden konjunktive Selektionsprädikate in Kaskaden von -Operationen zerlegt. 2. Mittels Regeln 2, 4, 6, und 9 werden Selektionsoperationen soweit „nach unten“ propagiert wie möglich. 3. Mittels Regel 8 werden die Blattknoten so vertauscht, dass derjenige, der das kleinste Zwischenergebnis liefert, zuerst ausgewertet wird. 4. Forme eine -Operation, die von einer -Operation gefolgt wird, wenn möglich in eine -Operation um 5. Mittels Regeln 3, 4, 7, und 10 werden Projektionen soweit wie möglich nach unten propagiert. 6. Versuche Operationsfolgen zusammenzufassen, wenn sie in einem „Durchlauf“ ausführbar sind (z.B. Anwendung von Regel 1, Regel 3, aber auch Zusammenfassung aufeinanderfolgender Selektionen und Projektionen zu einer „Filter“-Operation). Heuristische Anwendung der Transformationsregeln
14
14 Anwendung der Transformationsregeln select distinct s.Semester from Studenten s, hören h Vorlesungen v, Professoren p where p.Name = ´Sokrates´ and v.gelesenVon = p.PersNr and v.VorlNr = h.VorlNr and h.MatrNr = s.MatrNr sh v p p.Name = ´Sokrates´ and... s.Semester
15
15 Aufspalten der Selektionsprädikate sh v p p.Name = ´Sokrates´ and... s.Semester sh v p p.PersNr=v.gelesenVon s.Semester p.Name = ´Sokrates´ s.MatrNr=h.MatrNr v.VorlNr=h.VorlNr
16
16 Verschieben der Selektionsprädikate „Pushing Selections“ sh v p p.PersNr=v.gelesenVon s.Semester p.Name = `Sokrates` s.MatrNr=h.MatrNr v.VorlNr=h.VorlNr sh v p p.PersNr=v.gelesenVon s.Semester p.Name = ´Sokrates´ s.MatrNr=h.MatrNr v.VorlNr=h.VorlNr
17
17 Zusammenfassung von Selektionen und Kreuzprodukten zu Joins sh v p p.PersNr=v.gelesenVon s.Semester p.Name = ´Sokrates´ s.MatrNr=h.MatrNr v.VorlNr=h.VorlNr sh v p A s.MatrNr=h.MatrNr A p.PersNr=v.gelesenVon s.Semester p.Name = ´Sokrates´ A v.VorlNr=h.VorlNr
18
18 Optimierung der Joinreihenfolge Kommutativität und Assoziativität ausnutzen s h v p A s.MatrNr=h.MatrNr A p.PersNr=v.gelesenVon s.Semester p.Name = ´Sokrates´ A v.VorlNr=h.VorlNr sh v p A p.PersNr=v.gelesenVon s.Semester p.Name = ´Sokrates´ A v.VorlNr=h.VorlNr A s.MatrNr=h.MatrNr
19
19 Was hat´s gebracht? s h v p A s.MatrNr=h.MatrNr A p.PersNr=v.gelesenVon s.Semester p.Name = ´Sokrates´ A v.VorlNr=h.VorlNr sh v p A p.PersNr=v.gelesenVon s.Semester p.Name = ´Sokrates´ A v.VorlNr=h.VorlNr A s.MatrNr=h.MatrNr 13 4 1 3 4 4
20
20 Einfügen von Projektionen s h v p A s.MatrNr=h.MatrNr A p.PersNr=v.gelesenVon s.Semester p.Name = ´Sokrates´ A v.VorlNr=h.VorlNr s h v p A s.MatrNr=h.MatrNr A p.PersNr=v.gelesenVon s.Semester p.Name = ´Sokrates´ A v.VorlNr=h.VorlNr h.MatrNr
21
21 Eine weitere Beispieloptimierung
22
22
23
23
24
24
25
25
26
26
27
27
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.