![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
下の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ランキング
-
ステータスバーの文字の大きさ...
-
ファイル名の文字色の変更は出...
-
word2016のオプションの設定が...
-
文字サイズの変更 Android のタ...
-
Windows11PCでMACアドレスの変...
-
ShellFolderFixの設定につて
-
ウイルスバスター2008不審な挙...
-
Access データの入力確認
-
windows7の壁紙が勝手に変化する
-
Word2003/変更箇所/キーボード...
-
Windows Liveメールの背景色
-
【Windows7】タスクバーアイコ...
-
windows7 英語化
-
画像を自動的に変更させるには...
-
社内LAN上で、PCの名前を...
-
Gmailの確認メールって変更でき...
-
エクセルのコメント
-
JWWinで書かれたデータ内の色...
-
エクセルの組織図の描写領域の...
-
Googleに古いURLから新しい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル名の文字色の変更は出...
-
ステータスバーの文字の大きさ...
-
Windows11PCでMACアドレスの変...
-
変更されたブックマークのUR...
-
word2016のオプションの設定が...
-
管理者権限以外でIP設定を変更...
-
「Windows 10」で「エッジ」を開...
-
IISのWebサーバ自体のI...
-
メニューバー・ツールバーのテ...
-
win10でウィンドウサイズ変更の...
-
CD-Rのボリュームラベルの変更...
-
メールの背景色と文字色の変更
-
IPアドレス変更後の再起動
-
wifi
-
集合型のポスト?あれの暗証番...
-
windows10でのアプリの表示がお...
-
Accessのレポートで開くと「読...
-
PCのレジストリエディタ内の項...
-
フォルダ用アイコン作成 → 背景...
-
【VC++6.0(MFC)】スタックメモ...
おすすめ情報