コンテンツへスキップ
uencoder

Semi Join

セミジョインは、内部表に一致する行が存在する外部表の行だけを返す結合で、内部表の列は返さない。EXISTS サブクエリの最適化に使われる。

目的

EXISTS/IN サブクエリを最適化し、不要なデータ転送や結合を避けることを目的とする。

メカニズム

外部表の行が内部表に一致するかどうかだけを確認し、一致すれば外部表の行を出力する(内部のデータは付けない)。実装では内部表の結合列を重複除去してから外部表を探索する。通常の結合より出力も中間結果も少なくて済む。

ユースケース

  • サブクエリの最適化
  • EXISTS の最適化
  • テーブル結合の最適化

関連ツール

References