電子書籍の厳選無料作品が豊富!

ハッシュ結合について

(1)駆動表のサイズを調べる方法はあるのでしょうか?
ハッシュ結合は駆動表の大きさがhash_area_size以下の場合有効(処理速度が速い)とあったのですが…

(2)また、条件が等価結合の場合とあったのですが
WHERE t1.YMD = t2.YMD
AND t1.srv_cd = t2.srv_cd
AND t1.no < t2.no
のような場合どうなるのですか?
等価部分の条件までで作成されるのか、等価条件以外が入ってしまっているので作成されないのか…

本やネットで調べてみたのですがわかりませんでした(調べ方が悪いだけかもしれませんが)。どなたかお願いしますm(_ _)m

A 回答 (1件)

>(1)駆動表のサイズを調べる方法はあるのでしょうか?


>ハッシュ結合は駆動表の大きさがhash_area_size以下の場合有効(処理速度が速い)と
>あったのですが…

ないと思います。
でも、実行計画ありきなら、机上計算である程度の値は算出できると思いますが。
(その労力がどれだけ報われるかは分かりませんが)

あと、OLTPであればハッシュ結合よりもNL結合が選択されるように
索引定義を検討することが最優先だと思います。
(ハッシュ結合が行われる索引を有効活用できないケースが多いので)

>(2)また、条件が等価結合の場合とあったのですが
>WHERE t1.YMD = t2.YMD
>AND t1.srv_cd = t2.srv_cd
>AND t1.no < t2.no
>のような場合どうなるのですか?
>等価部分の条件までで作成されるのか、等価条件以外が入ってしまっているので
>作成されないのか…

等価部分の条件までで作成されるでしょう。
ただし、その結果他の結合方式の方が有利であればそちらが選択されるでしょう。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す