Anfrageoptimierer
aus Wikipedia, der freien Enzyklopädie
Der Anfrageoptimierer ist Teil eines Datenbankmanagementsystems, der für eine Datenbankanfrage einen optimalen Ausführungsplan berechnet. Der Optimierer verwendet für seine Entscheidungen statistische Erfahrungswerte über die gespeicherten Daten und versucht die Kosten (Rechenzeit und Speicherbedarf) zu minimieren. Abhängig davon können Operationen umgeordnet oder verschiedene Implementierungen einer Operation ausgewählt werden.
Falls mehr als zwei Tabellen verknüpft werden (join), gibt es mehrere Wege, dies zu tun.
Beispiel mit 3 Tabellen A, B und C
(A * B) * C A * (B * C) (A * C) * B
Der Abfrageoptimierer versucht nun, möglichst wenige Zeilen bei den Zwischenergebnissen entstehen zu lassen.
Die Verwendung eines Index, kann die Auswahl von Datensätzen enorm beschleunigen. Dies lohnt sich aber nur, wenn die Anzahl der der ausgefilterten Datensätze niedrig ist; andernfalls führt ein Full Table Scan schneller zum Ziel.