スケーラブルデータベースサーバ HiRDB Version 8 UAP開発ガイド
外への参照のある副問合せの実行方式及び特徴を次の表に示します。
表4-15 外への参照のある副問合せの実行方式及び特徴
実行方式 | 処理方式 | 長所 | 短所 |
---|---|---|---|
ネストループ作業表実行 | 外側の問合せを1行検索するごとに,副問合せを実行して作業表を作成して,副問合せを含む条件を評価する方式です。 | 副問合せの探索条件のうち,外への参照列を含む条件に対して,インデクスを使用できます。したがって,副問合せの探索条件が,インデクスを使用することでサーチ範囲を絞り込める場合に高速に検索できます。 外側の問合せの検索で,外への参照列が同値の行を連続して検索した場合には,副問合せの検索を省略できます。 |
外側の問合せのヒット件数が多い場合には,性能が悪くなります。 |
ネストループ行値実行 | 外側の問合せを1行検索するごとに,副問合せを実行して(作業表は作成しない),副問合せを含む条件を評価する方式です。 | 副問合せの探索条件のうち,外への参照列を含む条件に対してインデクスを使用できます。したがって,副問合せの探索条件が,インデクスを使用することでサーチ範囲を絞り込める場合には高速に検索できます。 外側の問合せの検索で,外への参照列が同値の行を連続して検索した場合には,副問合せの検索を省略できます。 |
外側の問合せのヒット件数が多い場合には,性能が悪くなります。 |
ハッシュ実行 | あらかじめ副問合せ結果からハッシュ表を作成しておいて,外側の問合せを1行取り出すごとに外側の問合せの値をハッシングし,ハッシュ表と突き合わせをする方式です。 | 外への参照列を含む条件を除いた副問合せのヒット件数が少なく,外側の問合せの件数が多い場合,高速に検索できます。 | 外への参照列を含む条件にインデクスを使用できません。 外への参照列を含む条件を除いた副問合せのヒット件数が多い場合,使用する作業表用バッファサイズが大きくなります。使用する最大作業表用バッファサイズを指定できますが,作業表バッファ領域が一杯になった場合は,いったんファイルに退避するため,性能が悪くなります。 副問合せがジョインしている場合,外への参照列を含む条件の評価はジョイン後になります。 |
図4-54 NESTED LOOPS WORK TABLE SUBQの処理方式
SELECT C1 FROM T1 WHERE C1=ANY(SELECT C1 FROM T2 WHERE C2=T1.C2)
図4-55 NESTED LOOPS ROW VALUE SUBQの処理方式
SELECT C1 FROM T1 WHERE C1=(SELECT MAX(C1) FROM T2 WHERE C2=T1.C2)
図4-56 HASH SUBQの処理方式
SELECT T1.C1 FROM T1 WHERE EXISTS(SELECT * FROM T2 WHERE C1='a' AND C2=T1.C2)
SELECT T1.C1 FROM T1 WHERE T1.C3<(SELECT T2.C3 FROM T2 WHERE C1='a' AND C2=T1.C2)
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.