コンテンツへスキップ
uencoder

Join Order Optimization

結合順序最適化(Join Order Optimization)は、複数テーブル結合の最良の順序を選択する。N テーブルで N! 通りの順序があるため、枝刈り探索が必要である。

目的

結合順序による性能差を理解し、直積や悪い順序を避ける。

メカニズム

動的計画法(System-R)はすべての結合順序を列挙し O(3^N) で最適解を求める。大規模結合には貪欲法やヒューリスティックな枝刈りを使う。左深い木は探索空間を制限する。結合順序は中間結果サイズに大きく影響する。

ユースケース

  • 複数テーブル結合のチューニング
  • 実行計画(プラン)の分析
  • オプティマイザの内部

関連ツール

References