
以下のようなSQLがあるとします。
------------------------
SELECT * from
(select * from TABLE-A where 条件色々) AA,
TABLE-B BB
where
BB.x(+) = AA.x
------------------------
TABLE-Aの件数は非常に多く(例100万)、条件は複雑です。
TABLE-Bの件数は少ないです(例30件)
この時、実行計画が
HASH JOIN RIGHT OUTER
TABLE ACCESS FULL TABLE-B
のように出ましたが、どのように解釈すれば良いのでしょう?
TABLE-Bは件数が少ないのでACCESS FULLでも問題ないでしょうか?
HASH JOIN RIGHT OUTER のコストが高くなってて気になってます。
たとえば、この場合のより適切な実行計画ってありますか?
No.1ベストアンサー
- 回答日時:
> この時、実行計画が
> HASH JOIN RIGHT OUTER
> TABLE ACCESS FULL TABLE-B
>
> のように出ましたが、どのように解釈すれば良いのでしょう?
AAとBBをハッシュ外部結合した。
> TABLE-Bは件数が少ないのでACCESS FULLでも問題ないでしょうか?
たかが30件ですからね。。
> たとえば、この場合のより適切な実行計画ってありますか?
「*」の部分が本当に「*」で、AAの件数(条件色々で絞り込んだ結果)が
極めて大きいなら、他の実行計画は考えにくいです。
# TABLE-Aの件数は非常に多く(例100万)、条件は複雑です。
従って、この部分をなるべく高速に返せるようにすることが重要です。
ご回答ありがとうございました。
ハッシュ結合の場合、小さい方のテーブルは必ずACCESS FULLになるようですね。
知識不足でした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
キャッシュを使わずにSELECTを...
-
likeとsubstrの使いわけについて
-
WHERE句の実行順序
-
JOINの時のONとWHEREの違いにつ...
-
ヒント句が無効になります
-
WHERE句はJOIN結合前結合後どち...
-
実行計画(EXPLAIN PLAN、AUTOT...
-
実行計画の取得方法について
-
SQL ORDER BYにおける条件について
-
実行計画HASH JOIN RIGHT OUTER
-
Accessのマクロでモジュールを...
-
Statement ignored というエラー
-
Access VBAで行ラベルが定義さ...
-
PL/SQLカーソルの2重FORループ...
-
SQLで部分的にGROUP BYしたいとき
-
エクセルVBAでUserFormを起動し...
-
sqlplusでヘッダーが付かない
-
別のスキーマのテーブルアップ...
-
重複するIDのデータを1行にま...
-
sqlplusのspoolで空白行出現
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
キャッシュを使わずにSELECTを...
-
WHERE句の実行順序
-
likeとsubstrの使いわけについて
-
ヒント句が無効になります
-
あいまい検索のパフォーマンス...
-
Like文の速度について教えてく...
-
WHERE句はJOIN結合前結合後どち...
-
いつもお世話になってます。
-
パフォーマンスについて
-
問題解決のストーリーにて PDCA...
-
SQL ORDER BYにおける条件について
-
実行計画HASH JOIN RIGHT OUTER
-
計画力をつけるにはどうすれば...
-
表の結合(性能)
-
JOINの時のONとWHEREの違いにつ...
-
アナライズでほとんどの処理が...
-
実行計画の取得方法について
-
実行計画(EXPLAIN PLAN、AUTOT...
-
外部結合と等価結合のパフォー...
-
アナライズとヒント句
おすすめ情報