Modul 6 - Optimierung von Anfragen Flashcards

1
Q

Agenda

A
  1. Allgemeines
  2. Relationenalgebra und deren Operationen
  3. Grundprinzipien der Optimierung
  4. Phasen der Optimierung
  5. Motivierendes Beispiel
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Optimierung von Anfragen

Der Optimierer

A

• 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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Grundprinzipien der Optimierung

A

• 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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Teilziele einer Optimierung

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Relationenalgebra

A

Heute: wichtigste Anfrageoperationen:
o Selektion
o Projektion
o Verbund.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Phasen der Optimierung

A
  • Logische Optimierung
  • Physische Optimierung
  • Kostenbasierte Auswahl
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q
  1. Logische Optimierung
A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q
  1. Physische Optimierung:
A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q
  1. Kostenbasierte Auswahl:
A

Kostenbasierte Auswahl:
o Auswahl aus mehreren alternativen Plänen
o Basierend auf statistischen Informationen
o Statistischen Informationen im System gespeichert.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Phasen der Anfragebearbeitung

A
Phasen der Anfragebearbeitung:
• Anfrageübersetzung und -vereinfachung
• Logische Optimierung
• Physische Optimierung
• Kostenbasierte Auswahl
• Planparametrisierung
• Codeerzeugung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

2, Physische Optimierung

A

• 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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q
  1. Kostenbasierte Auswahl
A

• Statistikinformationen werden genutzt für die Auswahl eines konkreten
internen Planes
• Statistikinformationen: Größe von Tabellen, Attributen, … .

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Komponenten von Kostenmodellen

A

Ü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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Ausgabe von Plänen

A

• 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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Optimizer Hints

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Planparametrisierung

A

• Bei vorkompilierte SQL-Anweisungen („prepared statements“) können
Optimierungsschritte ausgelassen werden, da bereits ein Ausführungsplan
vorliegt
• Diesem Fall: nur noch Platzhalter in Anfrage parametrisieren mit den
übergebenen Werten

17
Q

Codeerzeugung

A
  • Zugriffsplan wind in ausführbaren Code umgewandelt

* Alternativ: Zugriffspläne werden direkt von einem Interpreter verarbeitet