入れ子になっているループ結合について

入れ子になっているループ結合は入れ子化反復処理とも呼ばれ、一方の結合入力を外部入力テーブル (グラフィカルな実行プランでは上部入力として表示) として使用し、もう一方を内部 (下部) 入力テーブルとして使用します。外部ループでは、外部入力テーブルを 1 行ずつ使用します。内部ループは、外部行の 1 行ごとに実行され、内部入力テーブルで一致行を検索します。

最も単純な場合、テーブルまたはインデックス全体が検索されます。これは、単純入れ子化ループ結合と呼ばれます。検索でインデックスが使用される場合、インデックス入れ子化ループ結合と呼ばれます。インデックスがクエリ プランの一部として作成される (クエリの完了後破棄される) 場合、一時インデックス入れ子化ループ結合と呼ばれます。これらすべての派生形は、クエリ オプティマイザによって検討されます。

特に、外部入力が少なく、内部入力があらかじめインデックスを持ち、その数が多い場合に、入れ子になっているループ結合は効果的です。少数の行にだけ影響を与えるトランザクションなど、多くの小規模なトランザクションでは、インデックス入れ子化ループ結合はマージ結合およびハッシュ結合より優れています。ただし、大規模なクエリでは、多くの場合入れ子になっているループ結合は最適ではありません。