Statspackとは
Statspack設定
statspackでの情報収集
statspackレポートの出力
便利スクリプト
Oracleチューニング講座
第3章 パフォーマンス改善のアプローチを学ぶ
3章~6章までは、パフォーマンス・チューニングを行う手順や診断するために使用するビューを説明します。
本章では、「パフォーマンス改善のアプローチ」として、
Oracleデータベースのパフォーマンスを改善するためのアプローチ方法について説明します。
Oracleシステムのチューニング方法
まず、達成したいチューニング目標を設定することが重要です。具体的に数値で計ることができる目標を設定することで、チューニング・コストをを抑えることにもつながります。次のステップに従ってチューニングの対象を選び出してください。
以下に、チューニング手順を記します。
1.
目標の設定
達成可能な目標を設定します。チューニング作業に入る前に、特定の無理のない目標を設定します。目標の設定は、数字で計ることができるものにしてください。
設定例)
( )の処理は、( )時間・分・秒以内で実行する。
2.
現在のパフォーマンスを測定
STATSPACKやV$SYSTEM_EVENT、V$SESSION_EVENT、V$SESSION_WAITビューなどを使用してデータベースの現在のパフォーマンスを測定し、記録します。
同時期にOSのシステムデータも収集してください。OSで調べるべきデータは主にCPU使用率、デバイス使用率、仮想メモリー統計です。
・主なOSパフォーマンス監視ツール
Windows:パフォーマンスモニター
UNIX :CPU使用率 -- sar -u
:デバイス使用率 -- sar -d 、iostat
:仮想メモリー統計 -- vmstat
※R10.1からは、OS統計をチェックするビューが追加されています。
3.
現在のOracleボトルネックを特定
手順2の結果から、問題となっているSQLや競合などを識別します。
4.
現在のOSボトルネックを特定
手順2で収集したOSのシステム統計をチェックします。手順3で割りだしたOracleのボトルネックと一致する(例えばI/Oの問題)場合、そこがチューニングすべき点になります。
5.
チューニングする
アプリケーション、データベース、I/O、競合などをチューニングします。
※まずは可能な限りSQLのチューニングを実施するべきです。
チューニングを行う際に複数の変更(パラメータの変更など)を同時に行わないようにしてください。変更によって問題が生じた場合に、何が原因であるか特定することが困難になります。また、行った変更をもとに戻すことができるように、変更手順をまとめておくことを推奨します。
6.
変更後のパフォーマンスを測定
変更前と変更後の比較を適切に行うために、手順2と同じ時間枠で測定を行ってください。
7.
手順3から手順6を繰返す
目標を達成するまで手順3から手順6の作業を繰返します。
目標を達成したら、一切のチューニング作業を終了します。
ボトルネックの原因ではないコンポーネントをチューニングしないようにしてください。データベースに対する変更は、新しい問題を生む可能性があります。
第4章 動的パフォーマンス・ビュー (V$ビュー)とは