小さな表を最初に使用するデカルト結合

デカルト結合 とは、2 つの表の間に結合述部を 設定しない形のネスト・ループ結合のことを指します。

プログラム固有のプログラミング・インターフェース情報の開始 Db2は通常、デカルト結合を回避しますが、以下の例のように、最も効率的な方法となります。 この照会では、3 つの表を用います。すなわち、T1 (2 行)、T2 (3 行)、および T3 (1,000 万行) です。

SELECT * FROM T1, T2, T3
  WHERE  T1.C1 = T3.C1 AND
         T2.C2 = T3.C2 AND
         T3.C3 = 5;

結合述部は、T1 と T3 の間、および、T2 と T3 の間にあります。 T1 と T2 を結合する述部はありません。

T3の500万行が、C3=5という値を持っているとします。 T3が結合の外部表であり、500万行ごとにT2がアクセスされる場合、処理時間は大きくなります。

しかし、T1 と T2 のすべての行が結合述部なしで結合されると、500 万行への アクセスは 6 回のみ、つまり、T1 と T2 のデカルト結合の行ごとに 1 回 となります。 どのアクセス・パスが最も効率的なのかを判断することは困難です。Db2は、異なるオプションを評価し、シーケンスT1、T2、T3の表にアクセスすることを決定することができます。プログラム固有のプログラミング・インターフェース情報の終了