スケーラブルデータベースサーバ HiRDB Version 8 コマンドリファレンス(Windows(R)用)

[目次][索引][前へ][次へ]

17.6.4 結合検索について

<この項の構成>
(1) 分割キーを使用したネストループジョイン

(1) 分割キーを使用したネストループジョイン

(a) 表示の確認

HiRDB/パラレルサーバで,Join TypeがNESTED LOOPS JOINとなり,転送情報がBROADCAST,KEY RANGE PARTIAL BROAD CAST,又はPARTIAL BROADCASTと表示されている場合,ネストループジョインの内表の分割キーを変更することで,性能が向上することがあります。

表のデータ件数が少ない場合には影響は少ないですが,分割数が多い場合に効果があります。

(b) ベターユース

結合検索時にネストループジョインの内表を分割する場合には,結合列が分割キーになるように表を定義すると,並列に処理ができます。ただし,フレキシブルハッシュ分割の場合は並列に処理できません。転送情報が数字-CLM HASH,数字-CLM KEY RANGE,1TO1,又は数字-CLM MULTIDIMになるようにしてください。

(c) 理由

ネストループジョインの内表がキーレンジ分割,又はFIXハッシュ分割していて,内表の分割キーが結合列にすべて含まれている場合には,表の分割条件から内表のサーチ範囲を絞り込めます。そのため,入出力回数,CPU時間を削減できます。

(d) 
 
SELECT * FROM T1, T2 WHERE T1.C1=T2.C1 and T1.C1='a'
            ↓
CREATE TABLE T1 (C1 INT NOT NULL, C2 INT)
    FIX HASH HASH6 BY C1 IN (USER1,USER2,USER3,USER4)
CREATE TABLE T2 (C1 INT NOT NULL, C2 INT)
    FIX HASH HASH6 BY C1 IN (USER1,USER2,USER3,USER4)
 
(e) 注意事項

フレキシブルハッシュ分割を使用すると,データの格納位置が特定できないため,分割キーを変更しても常にBROADCASTとなり,並列には実行できません。フレキシブルハッシュ分割を使用する必要がないのであれば,FIXハッシュ分割にすることをお勧めします。フレキシブルハッシュ分割とFIXハッシュ分割については,マニュアル「HiRDB Version 8 システム導入・設計ガイド」を参照してください。