データベースの稼働状況を診断共有するサイト パフォーマンスセラピー
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$ビュー)とは