性能問題について対応しています。
約2000万件のマスタと付随する各テーブルを結合して、検索条件に一致するデータを抽出するSQLを開発していますが、これらのパターン(曖昧検索:前方一致)において、前述の2000万件のマスタが駆動表となり、且つフルスキャンが走るものがあり、改善策を検討しています。
つきましては、HINT指定で駆動表を強制的に各テーブルに変更する方法(SQLのHINT指定内容)についてお教え願います。
→曖昧検索条件にもっとも絞られる対象のテーブルを駆動表とし、マスタテーブルはその駆動表とプライマリーキーで結合した形でアクセス(フルスキャンを避ける)ような実行計画となるSQLに改善をしようとしています。
以上です。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
テーブルの構造やSQL、実行計画を見ずに、具体的なオプティマイザヒントの指定内容を示すことなど出来ません。
たぶん、頭の中に”理想的な実行計画”がイメージ出来ていて、それに近づけたいということだと思いますので、
オプティマイザヒントの指定の意味をマニュアルで読んだ方が速いんじゃないですかね。
この回答への補足
ありがとうございます。oracle8のマニュアルを見ましたがいまいち理解できません。
LEADINGオプションが該当しますかね?
No.2
- 回答日時:
私なら、判りやすく・・
ORDERED オプション(FROMに書いたテーブルを左から右へ向かって結合)
INDEX オプション (指定索引の利用を強要)
でコントロールすることを試みます。
この回答への補足
ORDERED オプションは、ルールベースの場合に有効と認識しています。私の環境ではCHOOSEモード(統計情報があり解析ができる場合はcostをベースとなる)なのです。
調査結果、LEADING指定、USE_NL指定で結合条件と駆動表を指定することで、2000万件のフルスキャンを回避、処理時間も大幅に短縮ができました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- SQL Server AccessのInsertクエリのあとつづけてDeleteクエリを行いたいがSQLでどう書いたらいい 3 2023/05/27 14:12
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- Oracle sqlで質問です。 Aテーブルの情報をBテーブルに更新かけたいです。 やりたいことは、Bテーブルの受 1 2023/05/17 11:17
- Oracle sqlのupdate文で質問です。 テーブルBの番号をキーにテーブルAの身長をテーブルBの身長に更新 2 2022/11/02 15:15
- Oracle SQLについて教えて下さい。 主キーを持ったカラムを主キーの機能を持たせたまま カンマ区切りで文字列 1 2023/03/27 22:47
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
キャッシュを使わずにSELECTを...
-
WHERE句の実行順序
-
ヒント句が無効になります
-
JOINの時のONとWHEREの違いにつ...
-
Like文の速度について教えてく...
-
アナライズでほとんどの処理が...
-
Accessのマクロでモジュールを...
-
Access VBAで行ラベルが定義さ...
-
Statement ignored というエラー
-
エクセルVBAでUserFormを起動し...
-
SQLサーバで和暦から西暦に変換...
-
sqlplusでヘッダーが付かない
-
時間項目を60進数から10進数へ...
-
テーブルの主キーをdate型...
-
SQLで部分的にGROUP BYしたいとき
-
ACCESS2007インポート時の空白...
-
ODBCリンクの際にACCESSでは読...
-
ACCESSでDate関数のエラーのついて
-
SQLserver算術オーバーフロ...
-
callで順に実行されるプロシー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
キャッシュを使わずにSELECTを...
-
likeとsubstrの使いわけについて
-
WHERE句の実行順序
-
Like文の速度について教えてく...
-
WHERE句はJOIN結合前結合後どち...
-
ヒント句が無効になります
-
JOINの時のONとWHEREの違いにつ...
-
あいまい検索のパフォーマンス...
-
アナライズでほとんどの処理が...
-
SQL ORDER BYにおける条件について
-
800万件のテーブル読み込み...
-
問題解決のストーリーにて PDCA...
-
実行計画HASH JOIN RIGHT OUTER
-
oracleのanalyzeと処理時間につ...
-
PDCAを回すって?
-
【チューニング】インデックス...
-
Oracleで検索すると、フリーズ...
-
Oracle 実行計画、統計情報の見方
-
OEMで負荷の少ないSQLの実行計...
-
データ抽出の速度について
おすすめ情報