スケーラブルデータベースサーバ HiRDB Version 8 コマンドリファレンス(UNIX(R)用)
ネストループジョインは,内表にインデクスが定義されていて,外表をかなり絞り込めるときに有効です。
- NESTED LOOPS JOIN
- 外表から1行ずつ行を取り出し,内表のそれぞれの行に突き合わせて,結合条件を満たす行を取り出す入れ子型のループ処理をする結合方法です。
- R-LIST NESTED LOOPS JOIN
- 内表から行を取り出して作業表を作成します。その後,外表から1行ずつ行を取り出して,それぞれの行に対して内表から作成した作業表を突き合わせ,結合条件を満たす行を取り出す入れ子型のループ処理をする結合方法です。
- HASH JOIN{FOR EACH}
- あらかじめ内表の結合列の値でハッシングしてハッシュ表を作成しておいて,外表を1行取り出すごとに外表の結合列の値でハッシングして,内表から作成しておいたハッシュ表と突き合わせて結合します。
SELECT-APSLは,SQL実行時に結合方法を動的に決定する方式です。
- SELECT-APSL(HiRDB/パラレルサーバの場合だけ)
- 条件に?パラメタを含んでいる場合,?パラメタの値によって最適な結合方法が変わることがあります。また,SQL最適化処理時に?パラメタの値が決まらないため,最適な結合方法が決定できません。そのため,SQL実行時にヒット率を計算して結合方法を決定します。
外部表が内表となる場合に,ネストループジョインで結合する方法です。
- DISTRIBUTED NESTED LOOPS JOIN
- 外表から行を取り出して,それぞれの行に対して内表となる外部表がある外部サーバに対して,外表の行の値を変数として渡したSQL文を実行して突き合わせることで,結合条件を満たす行を取り出す入れ子型のループ処理の結合をします。
- CROSS JOIN
- 外表のすべての行と,内表のすべての行をそれぞれ組み合わせて結合します。二つ以上の表にわたった条件があれば,結合した後に判定します。
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.