下の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で質問しましょう!
似たような質問が見つかりました
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
- MySQL PHP 画像のアップロード Qiita 2 2022/11/28 04:44
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Oracle SQLについて教えて下さい。 主キーを持ったカラムを主キーの機能を持たせたまま カンマ区切りで文字列 1 2023/03/27 22:47
- 英語 L-PRF can be obtained by manual or automated metho 1 2022/04/08 09:39
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- ドライブ・ストレージ NASの容量と ホルダーの プロパティの サイズと ディスク上のサイズの違い 1 2022/10/03 13:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ステータスバーの文字の大きさ...
-
ファイル名の文字色の変更は出...
-
Windows11PCでMACアドレスの変...
-
変更されたブックマークのUR...
-
OSインストール後にAHCIモード...
-
Googleアカウント 個人情報の設...
-
windows10でのアプリの表示がお...
-
仮想メモリの設定ができないん...
-
Windows8でjpgファイルの撮影時...
-
pin番号を変更したい
-
文字サイズの変更 Android のタ...
-
エクセルのコメント
-
パソコンのメールアドレスの変更
-
outlookアイコン変更
-
メニューバー・ツールバーのテ...
-
Windows10のMicrosoft Edgeが立...
-
word2016のオプションの設定が...
-
Windows Liveメールの背景色
-
「組織名」、「コンピュータ名...
-
Windows Media Player 11で手動...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル名の文字色の変更は出...
-
ステータスバーの文字の大きさ...
-
Windows11PCでMACアドレスの変...
-
文字サイズの変更 Android のタ...
-
管理者権限以外でIP設定を変更...
-
win10でウィンドウサイズ変更の...
-
「Windows 10」で「エッジ」を開...
-
word2016のオプションの設定が...
-
変更されたブックマークのUR...
-
Googleアカウント 個人情報の設...
-
IISのWebサーバ自体のI...
-
メールの背景色と文字色の変更
-
IPアドレス変更後の再起動
-
メニューバー・ツールバーのテ...
-
windows10でのアプリの表示がお...
-
pcのゲームを開こうとするとフ...
-
【VC++6.0(MFC)】スタックメモ...
-
CD-Rのボリュームラベルの変更...
-
wifi
-
pin番号を変更したい
おすすめ情報