専用Exadataインフラストラクチャ上のAutonomous DatabaseでのSQLトレースの使用
Autonomous Database on Dedicated Exadata InfrastructureでSQLトレースを使用すると、アプリケーションの負荷の高いSQL文など、過剰なデータベース・ワークロードのソースを識別しやすくなります。
SQLトレースは、Autonomous Databaseバージョン19.18以降でのみ使用できます。
SQLトレースについて
アプリケーション操作に予想以上に時間がかかる場合、解析、実行およびフェッチ・フェーズでそのSQL文に費やされた時間などの詳細とともに、この操作の一部として実行されたすべてのSQL文のトレースを取得すると、パフォーマンス問題の原因を特定して解決するのに役立ちます。Autonomous DatabaseでSQLトレースを使用してこれを実現できます。
- SQLトレース・ファイルを保存するためのデータベースの構成から開始します。詳細は、Autonomous DatabaseでのSQLトレースの構成を参照してください。
- 次に、SQLトレースを有効にします。Autonomous DatabaseでのSQLトレースの有効化を参照してください。
ノート
SQLトレースを有効にすると、トレース収集が有効になっている間、セッションのアプリケーション・パフォーマンスが低下する可能性があります。このパフォーマンスへの影響は、トレース・データの収集と保存のオーバーヘッドが原因となっています。 - SQLトレース・データの収集を停止するには、SQLトレースを無効にする必要があります。SQLトレースの無効化を参照してください。
- SQLトレースを無効にすると、トレースを有効にしたセッションの実行中に収集されたトレース・データが、セッション内の
SESSION_CLOUD_TRACE
ビューと、SQLトレースの設定中に構成したバケット内のトレース・ファイルに書き込まれます。トレース・データを表示するには、2つのオプションがあります:- クラウド・オブジェクト・ストアに保存されたトレース・ファイルのSQLトレース・データを表示および分析します。詳細は、Autonomous Databaseでのクラウド・オブジェクト・ストアに保存されたトレース・ファイルの表示を参照してください。
- ビュー
SESSION_CLOUD_TRACE
に保存されたSQLトレース・データを表示および分析します。詳細は、Autonomous DatabaseでのSESSION_CLOUD_TRACEビューのトレース・データの表示を参照してください。
- Autonomous DatabaseでのSQLトレースの構成
- Autonomous DatabaseでのSQLトレースの有効化
- SQLトレースの無効化
- Autonomous Databaseでのクラウド・オブジェクト・ストアに保存されたトレース・ファイルの表示
- Autonomous DatabaseでのSESSION_CLOUD_TRACEビューのトレース・データの表示
親トピック: 高パフォーマンス
Autonomous DatabaseでのSQLトレースの有効化
SQLトレースを有効にすると、トレース収集が有効になっている間、セッションのアプリケーション・パフォーマンスが低下する可能性があります。このパフォーマンスへの影響は、トレース・データの収集と保存のオーバーヘッドが原因となっています。
データベース・セッションでSQLトレースを有効にするには、次を実行します:
SQLトレース無効化
Autonomous Database上のクラウド・オブジェクト・ストアに保存されたトレース・ファイルの表示
DEFAULT_LOGGING_BUCKET
で構成されたクラウド・オブジェクト・ストア・バケットに書き込まれます。
SQLトレース機能は、セッションで収集されたトレース・データを次のフォーマットでクラウド・オブジェクト・ストアに書き込みます:
default_logging_bucket/sqltrace/clientID/moduleName/sqltrace_numID1_numID2.trc
ファイル名の構成要素は:
-
default_logging_bucket:
DEFAULT_LOGGING_BUCKET
データベース・プロパティの値です。詳細は、Autonomous DatabaseでのSQLトレースの構成を参照してください。 -
clientID
: クライアント識別子です。詳細は、Autonomous DatabaseでのSQLトレースの有効化を参照してください。 -
moduleName
: モジュール名です。詳細は、Autonomous DatabaseでのSQLトレースの有効化を参照してください。 -
numID1
_numID2
: SQLトレース機能で提供される2つの識別子です。numID1
およびnumID2
の数値によって、クラウド・オブジェクト・ストレージの同じバケットでトレースを使用したり、トレース・ファイルを作成したりする他のセッションから各トレース・ファイル名が一意に区別されます。データベース・サービスがパラレル化をサポートし、セッションがパラレル問合せを実行する場合、SQLトレース機能では、異なる
numID1
およびnumID2
の値を持つ複数のトレース・ファイルが生成されることがあります。
同じセッション内でSQLトレースを複数回有効化および無効化すると、トレースの繰返しごとにクラウド・オブジェクト・ストアに個別のトレース・ファイルが生成されます。セッションで生成された以前のトレースが上書きされないように、その後生成されるファイルは同じ命名規則に従い、トレース・ファイル名に数値の接尾辞が追加されます。この数値のサフィックスは数値1から始まり、その後トレースが繰り返されるたびに1増分されます。
たとえば、クライアント識別子を"sql_test"
に設定し、モジュール名を"modname"
に設定した場合に生成されるトレース・ファイル名の例を次に示します:
sqltrace/sqlt_test/modname/sqltrace_5415_56432.trc
TKPROF
を実行して、トレース・ファイルを読取り可能な出力ファイルに変換できます。
Autonomous DatabaseでのSESSION_CLOUD_TRACEビューのトレース・データの表示
SESSION_CLOUD_TRACE
ビューに表示されます。
SESSION_CLOUD_TRACE
ビューでSQLトレース・データを表示できます。SESSION_CLOUD_TRACE
ビューには、ROW_NUMBER
とTRACE
という2つの列が含まれます。DESC SESSION_CLOUD_TRACE
Name Null? Type
---------- ----- ------------------------------
ROW_NUMBER NUMBER
TRACE VARCHAR2(32767)
ROW_NUMBER
は、TRACE
列にあるトレース・データの順序を指定します。トレース・ファイルに書き込まれるトレース出力の各行は、表の行になり、TRACE
列で使用できます。
セッションのSQLトレースを無効にした後、SESSION_CLOUD_TRACE
ビューで問合せを実行できます。
SELECT trace FROM SESSION_CLOUD_TRACE ORDERBY row_number;
SESSION_CLOUD_TRACE
のデータは、セッション中は保持されます。ログアウトするかセッションをクローズすると、データは使用できなくなります。
同じセッション内でSQLトレースを複数回有効化および無効化すると、SESSION_CLOUD_TRACE
にはすべての繰返しのトレース・データが累積的に表示されます。したがって、前にトレースを無効にしてからセッションでトレースを再度有効にしても、前の繰返しで生成されたトレース・データは削除されません。