Modul 6 - Optimierung von Anfragen Flashcards
Agenda
- Allgemeines
- Relationenalgebra und deren Operationen
- Grundprinzipien der Optimierung
- Phasen der Optimierung
- Motivierendes Beispiel
Optimierung von Anfragen
Der Optimierer
• Der Optimierer ist eine unverzichtbare Komponente in DBMS
• In relationale Datenbanksysteme wird mit einer SQL-Anfrage nur die Ergebnismenge festgelegt
• Optimierer soll optimale Strategie zur Anfragebearbeitung bestimmen:
o Unter Ausnutzung aller Zugriffspfade
Grundprinzipien der Optimierung
• Mit Sprachen wie SQL wird die Ergebnismenge
charakterisiert
• Der Berechnungsweg zum Erreichen des Ergebnisses wird
nicht vorgegeben
• Der Berechnungsweg kann sogar nicht formuliert werden.
• Relationenalgebra kann aber Berechnungswege vorgeben
• Daher: Relationenalgebra idealer Kandidat für die interne
Darstellung von Anfragen in bestimmten
Optimierungsschritten.
• Ziel der Optimierung = eine möglichst schnelle Anfragebearbeitung
• Zugriffslücke in der Speicherhierarchie
=> möglichst schnelle Anfragebearbeitung = möglichst wenig
Seitenzugriffe bei der Anfragebearbeitung
• Also in allen Operationen sollten so wenig wie möglich Seiten (Tupel)
verarbeitet werden.
Teilziele einer Optimierung
So können wir leicht einige mögliche Teilziele einer Optimierung ableiten:
• Selektionen sollten so früh wie möglich erfolgen:
o um Zwischenergebnisse klein zu halten.
• Basisoperationen, die zusammengefasst werden können:
o Als ein Berechnungsschritt realisieren
o Ohne Zwischenspeicherung von Zwischenergebnissen.
• Es sollten nur Berechnungen ausgeführt werden, die auch einen Beitrag zum
Gesamtergebnis liefern:
o Z.B. Redundante Operationen oder nachweisbar leere Zwischenrelationen
o können aus Berechnungsplänen entfernt werden.
• Gleiche Teilausdrücke zusammenfassen:
o ermöglicht die Wiederverwendung von Zwischenergebnissen.
Relationenalgebra
Heute: wichtigste Anfrageoperationen:
o Selektion
o Projektion
o Verbund.
Phasen der Optimierung
- Logische Optimierung
- Physische Optimierung
- Kostenbasierte Auswahl
- Logische Optimierung
Logische Optimierung:
o Basierend auf einer übersetzten Anfrage als Relationenalgebra Term
o Anfrageterm wird umgeformt
o Z.B. Selektionen so weit wie möglich nach innen schieben.
- Physische Optimierung:
Physische Optimierung:
o Aus dem umgeformten Ausdruck werden ein oder mehrere (Zugriffs)pläne erzeugt
o In Zugriffsplänen wurden die abstrakten Algebraoperatoren durch konkrete Algorithmen ersetzt
o Braucht Information über vorliegende Indexstrukturen.
- Kostenbasierte Auswahl:
Kostenbasierte Auswahl:
o Auswahl aus mehreren alternativen Plänen
o Basierend auf statistischen Informationen
o Statistischen Informationen im System gespeichert.
Phasen der Anfragebearbeitung
Phasen der Anfragebearbeitung: • Anfrageübersetzung und -vereinfachung • Logische Optimierung • Physische Optimierung • Kostenbasierte Auswahl • Planparametrisierung • Codeerzeugung
2, Physische Optimierung
• auch als interne Optimierung bezeichnet
• Aufgabe: das Ergebnis der logischen Optimierung in einen ausführbaren
Plan umformen
• Logische Algebraoperatoren werden durch Basisalgorithmen ersetzt
• Konkrete Speicherungstechniken (Indexe, Cluster) werden berücksichtigt
• Transformation häufig nicht eindeutig:
o Entscheidung für eine konkrete Alternative auf Basis von Kostenabschätzungen.
- Kostenbasierte Auswahl
• Statistikinformationen werden genutzt für die Auswahl eines konkreten
internen Planes
• Statistikinformationen: Größe von Tabellen, Attributen, … .
Komponenten von Kostenmodellen
Übliche Komponenten von Kostenmodellen:
• Kostenfunktionen:
o Zur Abschätzung der Kosten für die Ausführung von Operationen bzw. Anfragen.
• Statistiken:
o Über die Größe der Relationen (Kardinalität, Tupelgröße)
o Über Wertebereiche und –verteilungen der Attribute
o Gehen in die Kostenfunktionen ein.
• Formeln:
o Zur Berechnung der Größen von (Zwischen-) Ergebnissen auf der Basis der Statistiken.
Ausgabe von Plänen
• Kommerzielle DBMS erlauben meistens die Optimierung in einem
begrenzten Maß zu beeinflussen
• Oracle: Werkzeuge zur Performance-Analyse und Tuning
• DB2: detaillierte Analyse der Anfragepläne mit Explain-Mechanismus
• SQL Server: SQL Query Analyzer
Optimizer Hints
Analyse der Ausführungspläne: Optimierer hat falsche Entscheidungen
getroffen
• => Einzelheiten des Planes für konkrete Anfragen können direkt vorgegeben
werden:
o Sogenannten Hints, mit denen der Optimierer beeinflusst werden kann