Join Order Optimization
結合順序最適化(Join Order Optimization)は、複数テーブル結合の最良の順序を選択する。N テーブルで N! 通りの順序があるため、枝刈り探索が必要である。
目的
結合順序による性能差を理解し、直積や悪い順序を避ける。
メカニズム
動的計画法(System-R)はすべての結合順序を列挙し O(3^N) で最適解を求める。大規模結合には貪欲法やヒューリスティックな枝刈りを使う。左深い木は探索空間を制限する。結合順序は中間結果サイズに大きく影響する。
ユースケース
- 複数テーブル結合のチューニング
- 実行計画(プラン)の分析
- オプティマイザの内部