Zum Inhalt springen
uencoder

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

Verwandte Tools

References