 ##  [Abfrageoptimierung](/de/node/58811) 

 Definition

Der Prozess in einem Datenbankmanagementsystem, einen Ausführungsplan für eine deklarative Abfrage auszuwählen, indem äquivalente algebraische Ausdrücke transformiert, Kosten geschätzt und Operatoren, Join-Reihenfolgen und Zugriffswege gewählt werden, die den erwarteten Ressourcenverbrauch oder die Latenz minimieren.

 

 

 

 

 

 





## Prinzip

Prinzip

Durchsuche den Raum semantisch äquivalenter Abfragepläne mit Kostenmodellen und Statistiken, wende algebraische Transformationen (Kommutativität, Assoziativität, Predicate Pushdown, Projektion) und Heuristiken an, um unter Nebenbedingungen kostengünstige Pläne zu finden.

 

 

 

 

 





## Demonstration

Demonstration

Der Optimierer schreibt eine SQL-Abfrage um, um Filter vor Joins zu schieben, wählt basierend auf Kardinalitätsschätzungen einen Indexscan statt eines Full Scans und ordnet Joins so, dass kleinere Zwischenresultate materialisiert werden, wodurch I/O und Ausführungszeit sinken.

 

 

 

 

## Fehlanwendung

Fehlanwendung

Das Vertrauen auf veraltete oder fehlende Statistiken führt zu schlechten Kardinalitätsschätzungen und schlechten Plänen; exhaustive Suche ohne Pruning ist unpraktikabel; vorzeitige Materialisierung oder übermäßiges Heuristik-Design kann bessere Pläne übersehen.

 

 

 

 

 





## Konsequenz

Konsequenz

Effektive Abfrageoptimierung reduziert Abfragelatenz und Ressourceneinsatz erheblich und ermöglicht es komplexen Analyse- und OLTP-Workloads, skaliert mit vorhersagbarer Leistung auszuführen.

 

 

 

 

## Umkehrung

Umkehrung

Ohne Optimierung kann das DBMS einen naiven Plan (Full Scans, verschachtelte Schleifenjoins bei großen Eingaben) ausführen, der übermäßiges I/O und CPU verbraucht und deutlich höhere Latenz erzeugt.

 

 

 

 

 





## Abgrenzung

Abgrenzung

Gilt für deklarative Abfragen in DBMS und Query-Engines; schließt manuelles Umschreiben von Abfragen außerhalb des Optimierers und Laufzeitplanungen aus, die nichts mit Einzelabfrage-Planwahl zu tun haben.

 

 

 

 

 





## Semantische Spannung

Semantische Spannung

Es besteht eine Spannung zwischen regelbasierten und kostenbasierten Optimierern sowie zwischen exhaustiver Suche und heuristischem Pruning; zudem gibt es einen Trade-off zwischen Optimierungszeit und Laufzeitperformance.

 

 

 

 

 





## Synthese

Synthese

Abfrageoptimierung ist der kostengeleitete Such– und Transformationsprozess, der eine deklarative Abfrage in einen effizienten Ausführungsplan überführt, durch Kombination algebraischer Umformulierungen, statistikbasierter Kostenmodelle und pragmatischer Heuristiken.