
No.2ベストアンサー
- 回答日時:
>以下の2つのSQLを比較してどちらがパフォーマンスが良いでしょうか。
>先に抽出して結合した方が良いと昔聞いた事がありましたが
ルールベースの場合の話かも知れません(9i以前なら使用可能)
コストベースオプティマイザを使用すると、内部結合のON条件とWHERE句とを同等に解析してくれるので、特に書き方来る性能差はないと考えればよいです。
(1)と(2)についてですが、「実行計画」をそれぞれ表示して比べてみてください。autotraceもよいですね。おそらく同じような結果が出ると思うのですが、基本的には(2)のような書き方はあまりすべきではありません。コストベースオプティマイザによる最適実行計画立案を妨げる恐れがある書き方だと思います。(もっと複雑なSQLだと、特に)
常に(1)のような書き方を心がけ、ベストの実行計画が出にくい場合にヒント句で調整するのが一番よい方法です。
No.1
- 回答日時:
(2)の方がパフォーマンスがよいかと思うのですが、
実際は、データの分布状況にって、オプティマイザ判定が変わります。
クエリの推定プラン等をみるのが一番てっとり早いです。
昔似たような件を調べたら、(1)と(2)は同じプランを生成してました。
その時は、EXISTSを使った構文(3?)が1番早かったですが。。。(SQLserver)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
キャッシュを使わずにSELECTを...
-
処理速度の改善について
-
DATE型カラムのインデックスが...
-
Accessのマクロでモジュールを...
-
Access VBAで行ラベルが定義さ...
-
SQL*Loaderでのsysdate使用
-
SQLで部分的にGROUP BYしたいとき
-
Statement ignored というエラー
-
sqlplusでヘッダーが付かない
-
テーブルの主キーをdate型...
-
Accessの数値から時間に変換す...
-
excel 日付のみ置換したいのです
-
SQL Server で 翌月10日を取...
-
ストアド実行時のエラー「参照...
-
Accessでグローバル変数を宣言...
-
ストアドプロシジャからストア...
-
Google Apps Script、onChange...
-
DB2でのシステム日付のinsert、...
-
異なるスキーマのビューを元に...
-
Excel2000 セルデータ検索ウィ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
キャッシュを使わずにSELECTを...
-
WHERE句の実行順序
-
likeとsubstrの使いわけについて
-
ヒント句が無効になります
-
あいまい検索のパフォーマンス...
-
Like文の速度について教えてく...
-
WHERE句はJOIN結合前結合後どち...
-
いつもお世話になってます。
-
パフォーマンスについて
-
問題解決のストーリーにて PDCA...
-
SQL ORDER BYにおける条件について
-
実行計画HASH JOIN RIGHT OUTER
-
計画力をつけるにはどうすれば...
-
表の結合(性能)
-
JOINの時のONとWHEREの違いにつ...
-
アナライズでほとんどの処理が...
-
実行計画の取得方法について
-
実行計画(EXPLAIN PLAN、AUTOT...
-
外部結合と等価結合のパフォー...
-
アナライズとヒント句
おすすめ情報