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

デカルト結合 とは、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 プログラム固有のプログラミングインターフェース情報を終了します。