下のSQL文がパフォーマンスが非常に悪いです。
何かチューニングする方法ありませんか。
Oracle8.1.7
OSはWin2000serverSP2
◇SQL文
SELECT A.HINCD , B.TANCD ,A.SIZE,A.COLOR
FROM TB_TBLA A ,TB_TBLB B
WHERE A.KA_CD = B.KA_CD(+)"
AND A.HINCD = B.HINCD(+)
AND A.JIGYOCD = 1
AND A.BRCD = 20
AND A.BUCD = 300
TB_TBLAの主キーは、JIGYOCD、BRCD、BUCDです。
TB_TBLBの主キーは、KA_CDです。
また、TB_TBLAの件数は、約10万件、TB_TBLBは3万件だとしたら、
読み込み件数は10万*3万件となるのでしょうか。
よろしくお願いします。
No.6ベストアンサー
- 回答日時:
>"iniSID.ora”の中の”SORT_AREA_SIZE”を変更するような感じで色々書いてあるのですが、iniファイルには”SORT_AREA_SIZE”たる記述がありません。
初期化パラメータファイル(init.ora)にありませんか。
ただ初期化パラメータの「sort_area_size」を大きめに変更する場合、同時に「sort_area_retained_size」も変更しないと意味がないかと思います。
それと、init.oraを変更して、Oracleを再起動する野は大変ですよね。
ALTER SESSION SET SORT_AREA_SIZE=値;で設定していろいろ試してから変更するほうがらくだと思います。
いつもご回答ありがとうございます。
初期化パラメータの変更(init.ora)なんですね。
けど、今回、もう少し様子見することになりました。
いろいろありがとうございました。
実は、今回の件でパフォーマンス・チューニングに関して初めてかかわったのですが、かじりでも触れたかなと思っています。
また、よろしくお願いします。
No.5
- 回答日時:
>ためしにヒントを入れてみたんですが、結果はさほど変わりませんでした。
/*+ FIRST_ROWS */で変わらないということは、それ以上早くならない可能性が大です。
SQLではなくオラクルの設定を見直したほうがいいと思います。
・共有プールのチューニング
・データベースバッファキャッシュのチューニング
・REDOログバッファのチューニング
・SGAのその他のチューニング
tomo316 いつもご回答ありがとうございます。
このSQL文で実行計画(autotrace)をとってみました。
するとソート読みしていることがわかり、テンポラリ領域まで使ってソートしていることがわかりました。
そこでデータをかなり削除してもらって、同じことをするとテンポラリ領域へのアクセスがかなり減りました。
お陰で無駄なデータもあったということもわかったのですが、メモリソート領域もデフォルトのままだったので、メモリソート領域を増やすことになりました。
ついでといっては申し訳ないのですが、そのメモリソート領域を動的ではなく、常に拡張するにはどのようにしたらいいのですか。
"iniSID.ora”の中の”SORT_AREA_SIZE”を変更するような感じで色々書いてあるのですが、iniファイルには”SORT_AREA_SIZE”たる記述がありません。
これは記述を追加するということなんでしょうか。
よろしくお願いします。
No.4
- 回答日時:
/*+ ALL_ROWS */
SELECT /*+ ALL_ROWS */ A.HINCD , B.TANCD ,A.SIZE,A.COLOR
/*+ FIRST_ROWS */
SELECT /*+ FIRST_ROWS */ A.HINCD , B.TANCD ,A.SIZE,A.COLOR
10倍~100倍のレスポンスが違うよ。
No.3
- 回答日時:
SELECT
A.HINCD,
(select B.TANCD from TB_TBLB B where A.KA_CD=B.KA_CD AND A.HINCD=B.HINCD),
A.SIZE,
A.COLOR
FROM TB_TBLA A
WHERE A.JIGYOCD=1 AND A.BRCD=20 AND A.BUCD=300
;
この回答への補足
ご回答ありがとうございます。
参考例で試したところ(timing取ったんですけど)、変化がみられませんでした。
timingは意味ないのでしょうか。
No.1
- 回答日時:
我が家のPCには、oracle入れてないので、推測ですが・・・
このSQLではTB_TBLAでせっかくの主キーが使われてないと思います。
SELECT A.HINCD , B.TANCD ,A.SIZE,A.COLOR
FROM TB_TBLA A ,TB_TBLB B
WHERE A.KA_CD = B.KA_CD(+)"
AND A.HINCD = B.HINCD(+)
AND (A.JIGYOCD, A.BRCD, A.BUCD) = (1, 20, 300);
これで、主キーを使うようになると思います。
Oracleで、行比較ができなかったら、すみません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
変更されたブックマークのUR...
-
ファイル名の文字色の変更は出...
-
Windows11PCでMACアドレスの変...
-
ステータスバーの文字の大きさ...
-
【VC++6.0(MFC)】スタックメモ...
-
PCのレジストリエディタ内の項...
-
ファイル変更の痕跡
-
CD-Rのボリュームラベルの変更...
-
IPアドレス変更後の再起動
-
IISのWebサーバ自体のI...
-
PostgreSQLのブロックサイズ変更
-
Excel2000から2003への主な変更...
-
アイコンの文字色は変更できる?
-
集合型のポスト?あれの暗証番...
-
「Windows 10」で「エッジ」を開...
-
Windows10では「ウィンドウの色...
-
Vitaのカメラで動画撮影のサイ...
-
管理者権限以外でIP設定を変更...
-
Windows Liveメールの背景色
-
ファイル選択の項目枠の色を濃...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル名の文字色の変更は出...
-
Windows11PCでMACアドレスの変...
-
ステータスバーの文字の大きさ...
-
変更されたブックマークのUR...
-
集合型のポスト?あれの暗証番...
-
IISのWebサーバ自体のI...
-
PCのレジストリエディタ内の項...
-
word2016のオプションの設定が...
-
管理者権限以外でIP設定を変更...
-
Windows10では「ウィンドウの色...
-
メールの背景色と文字色の変更
-
IPアドレス変更後の再起動
-
win10でウィンドウサイズ変更の...
-
「Windows 10」で「エッジ」を開...
-
CD-Rのボリュームラベルの変更...
-
Accessのレポートで開くと「読...
-
エクセルのシートのタブを大き...
-
ブルーレイを見ると残像が起きる?
-
ファイルのプロパティ、場所に...
-
メニューバー・ツールバーのテ...
おすすめ情報