5.5.1 ネストループジョインとは
外表の結合列の値を使用して,内表の結合列をサーチして突き合わせます。この処理を外表の行数分繰り返して表を結合します。この結合方式をネストループジョインといいます。
外表と内表を結合するための結合条件に指定した列に,インデクスが定義されている場合,結合条件の評価時にインデクスを使用して,内表の検索範囲を絞り込めることがあります。
次のSELECT文を実行した際にネストループジョインが適用された場合を例にして,ネストループジョインによる結合方式を説明します。
- (例)
-
SELECT * FROM "T1","T2" WHERE "T1"."C2">10 AND "T1"."C1">"T2"."C1"
結合対象の表のうち,どちらを外表,内表にするかは,HADBが決定します。この例では,表T1を外表,表T2を内表として説明します。また,下線部分の結合条件に指定しているT1.C1列とT2.C1列が結合列となります。
- [説明]
-
外表の結合列の値(B3)を取り出し,内表の結合列の値と突き合わせます。次に,外表の結合列の値(A1)を取り出し,内表の結合列の値と突き合わせます。この処理を外表の行数分繰り返します。
表T1を外表,表T2を内表とするネストループジョインの場合,結合条件に指定した列("T1"."C1"および"T2"."C1")にインデクスが定義されていると,結合条件("T1"."C1">"T2"."C1")の評価時にインデクスを使用して,内表の検索範囲を絞り込めることがあります。
- メモ
-
結合表の場合は,結合方式指定によって外表を指定することができます。結合方式指定については,マニュアルHADB SQLリファレンスの結合方式指定の指定形式および規則を参照してください。