
Linuxサーバー(Red Hat Enterprise Linux 5.5)にOracle10g(10.2.0.4)をインストールしたのですが、パフォーマンスの問題で、バッファ・キャッシュ・ヒット率が90%を下回っており、まずはこれを解決する必要があるとのことで、少し調べ始めたのですが、10gではsga_targetで自動管理できるということを知りました。
最終目的は、パフォーマンス最適化を目指していますが、そのために確認しておくべき内容および設定方法を教えてください(あるいは回答にマッチしたサイトがあれば)。sga_targetを攻略すれば達成できるのでしょうか?
当面の目的はバッファ・キャッシュ・ヒット率を上げることですが、どうすればよいでしょうか?
Oracleド素人ですので、コマンドベースで教えていただけると助かります(^^;
よろしくお願いします。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
こんにちわ。
先ずは、Statspack Report を確認して見て下さい。
Top5 Timed Event だけでも見れればと思います。
恐らくデフォルトの状態と推察しますが、log_buffer の設定
(sga_target では制御されません) も気になります。
更新系の処理が多い場合、log_buffer を50MB ~ 100MB 程度に増やすと
効果があるかも知れません。
お礼が遅くなり申し訳ございません。
一旦、sga_targetを増やすことで90%以上のヒット率となりました。
その他のチューニングは、もう少し勉強してから行ってみたいと思います。
ありがとうございました。
No.3
- 回答日時:
SGA_TARGETは10gから導入されたパラメータで、SGAの全体サイズを指定しておけば
コンポーネントのサイズを自動決定してくれる便利なパラメータです。
なので、それを攻略すれば・・・というのはちょっと違うような気がしますが。
ただ、SGAとしてに割り当てたいメモリサイズを指定するだけです。
さて、バッファヒット率が低い原因ですが、多くのケースでは全表走査が多いこと。
全表走査の結果は基本的にはキャッシュされないかされてもすぐに追い出されて
しまいます。それが意図されていることであればよいのですが、そうではないのであれば
SQLのチューニングや索引の追加が必要になります。
お礼が遅くなり申し訳ございません。
一旦、sga_targetを増やすことで90%以上のヒット率となりました。
その他のチューニングは、もう少し勉強してから行ってみたいと思います。
ありがとうございました。
No.2
- 回答日時:
1.SGA_MAX_SIZEの最適化
SGA割当が適切な設定値か、確認してみてください。
マシンの物理メモリと、Oracleにいくらまで使わせることができるか、により決まると思います。
Oracle以外にもメモリを使うので、vmstatコマンドなどで、Freeメモリを確認し、Freeが物理メモリの25%の値になるぐらいがぎりぎり一杯の設定値となります。大きすぎる値は設定しないように気をつけてください。
2.バッファキャッシュ利用効率が悪いSQLがいないか?
たくさんメモリを割り当てても、効率の悪いSQLを乱発すると、いくらあっても足りなくなります。
とても効率が悪いSQLがいないかを確認し、いればチューニングしましょう。
1,2ともに実施しても足りない場合、物理メモリが足りないということになりますが、大抵はチューニングによって大幅に効率化できます。
効率の悪いSQL=遅いSQLと考えてほぼ差し支えなく、それを探す方法としてSTATSPACKレポートが簡単でお勧めですが、もっと簡単な方法としては、以下のような手順があります。
(1)アプリを一通り動かす(SQL実行統計情報を生成する)
(2)以下のSQLで、バッファアクセスの激しいSQLを調べる
select * from v$sql order by BUFFER_GETS desc;
(elapsed_timeがSQLの実行経過時間(マイクロ秒)ですので、そっちを見てもよいです)
>最終目的は、パフォーマンス最適化を目指していますが、そのために確認しておくべき内容および設定方法を教えてください(あるいは回答にマッチしたサイトがあれば)。sga_targetを攻略すれば達成できるのでしょうか?
sga_targetだけで解決するものではなさそうに思いました。
キャッシュバッファがボトルネックとして現れている場合、SGAが少なすぎる(DBインスタンスの問題)の場合と、SQLがバッファを乱用しすぎている(アプリケーションの問題)がともに考えられ、後者である可能性のほうが一般的です。
また、チューニング順序としては、DBインスタンスチューニングよりもアプリチューニングのほうが順番としては先に行うべきものといえます。
お礼が遅くなり申し訳ございません。
一旦、sga_targetを増やすことで90%以上のヒット率となりました。
その他のチューニングは、もう少し勉強してから行ってみたいと思います。
ありがとうございました。
No.1
- 回答日時:
・CURSOR_SHARINGをSimilarかForceにする。
(個人的にはSimilarをお勧め)ALTER SYSTEM SET CURSOR_SHARING = Similar;
・定期的(出来れば1時間ごとぐらい)に以下のSQL文を実行し、結果を保存する。
SELECT T.*
FROM ( SELECT
SQL_TEXT,
CASE COMMAND_TYPE
WHEN 2 THEN 'INSERT'
WHEN 3 THEN 'SELECT'
WHEN 6 THEN 'UPDATE'
WHEN 7 THEN 'DELETE'
ELSE 'OTHER'
END COMMAND_TYPE,
EXECUTIONS,
DISK_READS,
DIRECT_WRITES,
BUFFER_GETS,
RANK() OVER( PARTITION BY COMMAND_TYPE ORDER BY DISK_READS DESC ) RNK
FROM V$SQLAREA ) T
WHERE T.RNK < 10
ORDER BY T.COMMAND_TYPE,T.RNK;
この結果でDISK_READSが多いSQLについて実行計画はどうなっているか分析する。
索引がない場合、有効に活用されていない場合などを重点にチェックする。
・その上でSGA自体を増やせるか検討する。その際、スラッシングが起きないようにLinuxならvmsat、Windowsならパフォーマンスカウンタでページイン、ページアウトを監視する。
お礼が遅くなり申し訳ございません。
一旦、sga_targetを増やすことで90%以上のヒット率となりました。
その他のチューニングは、もう少し勉強してから行ってみたいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 財務・会計・経理 この問題の正解をおしえてほしいです。 第1問 損益計算書には営業利益、経常利益等、異なる名前の利益が 1 2023/06/02 05:04
- モニター・ディスプレイ PCゲームで急にFPSが落ちました 2 2022/11/18 00:42
- HTML・CSS Chrome のキャッシュについて 3 2022/05/26 07:50
- ルーター・ネットワーク機器 AU光10G回線について 6 2022/07/25 00:12
- 数学 時々、回答者の見識に疑念を抱いてしまうんです。私だって本当は皆様のことを疑いたくはありません。しかし 2 2022/11/27 12:23
- 統計学 統計量および正規分布と分散の加法性の演習問題です。 5 2023/07/29 10:46
- 中古パソコン 富士通 ESPRIMO B532/G のBIOSが表示されない 3 2023/01/03 16:42
- UNIX・Linux linuxサーバーのキャッシュをクリアするコマンドを実行したい。 5 2023/01/24 14:52
- 画像編集・動画編集・音楽編集 daVinciResolveの再生プレビュー画面がカクつきます。 daVinciResolve18を 2 2023/01/20 01:35
- Illustrator(イラストレーター) イラストレーターの面積を求める 1 2022/04/17 11:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
oracleのシーケンスについて
-
CMDとSQL
-
ExcelのセルデータをPowerPoint...
-
アクセスでエラー このフィー...
-
iTunes で管理している曲をリス...
-
AccessからExcelファイル出力
-
ACCESS 2003ランタイムによるEX...
-
誤って上書きしてしまったEX...
-
テーブルデータ移行について
-
ダイアログボックス
-
スレッド掲示板 作成
-
ファイルメーカーからエクセルへ
-
THE CARD3のデータをエクセルで...
-
Gmailからウィルコムへの連絡先...
-
Excelへのエクスポート
-
拡張子が「cda」のファイルを聞...
-
DBをエクセル表に出力
-
VMplayerでのIPアドレス競合
-
起動時にデバイスの一つが認識...
-
Windows Updateなどへ接続できない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ADOを使ったDBアクセス後のメモ...
-
ストアドプロシージャで外部プ...
-
AccessのMDBファイルを開く際に...
-
VBからRDOの接続ができない!困...
-
テキストボックス名を変数で指...
-
Oracleのパラメータ(init.ora)...
-
Oracle:Oracleシーケンスとは?
-
Notesにて「指定したコマンドが...
-
Symfowareでの動的SQL
-
ASPからSQL Server2000のストア...
-
Oracle10g キャッシュヒット率...
-
ストアドプロシージャについて
-
SQL Serverへエクスポートする...
-
WindowsXP で SQL Server Compa...
-
postgresql DELETE後commit...
-
ORACLE PRO*CからPLSQL(パッケ...
-
オラクルのシーケンスについて
-
ORACLE9iをVB6のADOで更新でき...
-
SQL Server 2000 SELECT文実行...
-
CTLファイルのパラメータについて
おすすめ情報