Join Order Optimization
Die Join-Reihenfolge-Optimierung wählt die beste Reihenfolge für Multi-Table-Joins; bei N Tabellen gibt es N! Reihenfolgen, daher ist eine beschnittene Suche nötig.
Zweck
Die Leistungsunterschiede zwischen Join-Reihenfolgen verstehen und Kartesische Produkte sowie schlechte Ordnungen vermeiden.
Mechanismus
Dynamische Programmierung (System-R) enumeriert alle Join-Reihenfolgen für das Optimum in O(3^N). Große Joins nutzen Greedy- oder Heuristik-Pruning. Left-deep-Bäume beschränken den Suchraum. Die Join-Reihenfolge beeinflusst die Zwischenergebnisgrößen enorm.
Anwendungsfälle
- Tuning von Multi-Table-Joins
- Ausführungsplan-Analyse
- Optimizer-Interna