Oracle9iでは、SQLトレース機能を使用して個々のSQL文のパフォーマンス・データが収集されます。SQLトレースによって生成された情報は、SQLトレース・ファイルに格納されます。SQLパフォーマンス・アナライザでは、これらのファイルに格納されている次の情報が使用されます。
解析が行われたSQLテキストおよびユーザー名
各実行のバインド値
CPU時間および経過時間
物理読取りおよび論理読取り
処理された行数
各SQL文の実行計画(SQL文のカーソルがクローズしている場合にのみ取得される)
インスタンスに対してSQLトレースを有効にすることは可能ですが、セッションのサブセットに対してSQLトレースを有効にすることをお薦めします。インスタンスに対してSQLトレース機能を有効にすると、そのインスタンスで実行されたすべてのSQL文のパフォーマンス統計がSQLトレース・ファイルに格納されます。このようにSQLトレースを使用すると、パフォーマンスに重大な影響を与えたり、システムのオーバーヘッドの増加、過度なCPU使用率、ディスク領域の不足などを引き起こす可能性があります。トレース・レベルを4に設定して、バインド値および実行計画を取得する必要があります。
Oracle Database 10gリリース1が実行されている本番システムで、DBMS_MONITOR
.SESSION_TRACE_ENABLE
プロシージャを使用して、SQLトレースを別のセッションで透過的に有効にします。binds
プロシージャ・パラメータをTRUE
に設定して(デフォルト値はFALSE
)、バインドを明示的に有効にする必要もあります。
SQLトレースを有効にしたら、SQLパフォーマンス・アナライザで使用するSQL文の典型的なセットの統計が含まれているSQLトレース・ファイルを特定します。その後、SQLトレース・ファイルをSQLパフォーマンス・アナライザのシステムにコピーします。SQLワークロードをSQLトレース・ファイルに取得したら、本番システムでSQL試行を無効にします。
関連項目:
SQLトレース・ファイルを管理するための初期化パラメータの設定など、SQLトレースの使用のその他の考慮事項については、『Oracle Database SQLチューニング・ガイド』を参照してください。
DBMS_MONITOR
パッケージについては、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。