Autonomous DatabaseでのSQLトレースの実行
SQLトレースを使用すると、アプリケーションの負荷の高いSQL文など、過剰なデータベース・ワークロードのソースを識別できます。
- Autonomous DatabaseでのSQLトレースの構成
Autonomous DatabaseでSQLトレースを構成するステップを示します。 - Autonomous DatabaseでのSQLトレースの有効化
データベース・セッションのSQLトレースを有効にするステップを示します。 - Autonomous DatabaseでのSQLトレースの無効化
Autonomous DatabaseでSQLトレースを無効にするステップを示します。 - Autonomous Databaseのクラウド・オブジェクト・ストアに保存されたトレース・ファイルの表示
SQLトレース・ファイルの出力ファイル・ネーミングについて説明し、TKPROF
を使用してトレース・ファイル・データを編成および表示するコマンドを示します。 - Autonomous DatabaseのSESSION_CLOUD_TRACEビューでのトレース・データの表示
SQLトレースを有効にすると、トレースが有効になったセッションのSESSION_CLOUD_TRACE
ビューで、クラウド・オブジェクト・ストアのトレース・ファイルに保存されたトレース情報と同じトレース情報を使用できます。
親トピック: パフォーマンスの監視と管理
Autonomous DatabaseでのSQLトレースの構成
Autonomous DatabaseでSQLトレースを構成するステップを示します。
ノート:
SQLトレースを有効にすると、トレース収集が有効な間、セッションのアプリケーション・パフォーマンスが低下する可能性があります。 トレース・データの収集および保存のオーバーヘッドのため、このマイナスのパフォーマンスへの影響が予想されます。SQLトレース用にデータベースを構成するには、次の手順を実行します:
Autonomous DatabaseでのSQLトレースの有効化
データベース・セッションに対してSQLトレースを有効にするステップを示します。
ノート:
SQLトレースを有効にすると、トレース収集が有効な間、セッションのアプリケーション・パフォーマンスが低下する可能性があります。 トレース・データの収集および保存のオーバーヘッドのため、このマイナスのパフォーマンスへの影響が予想されます。SQLトレースを有効にする前に、SQLトレース・ファイルを保存するようにデータベースを構成する必要があります。 詳細については、「Autonomous DatabaseでのSQLトレースの構成」を参照してください。
SQLトレースを有効にするには、次の手順を実行します:
Autonomous DatabaseでのSQLトレースの無効化
Autonomous DatabaseでSQLトレースを無効にするステップを示します。
SQLトレースを無効にするには、次を実行します:
SQLトレースを無効にすると、トレースが有効化されているセッションの実行中に収集されたトレース・データが表にコピーされ、クラウド・オブジェクト・ストアのトレース・ファイルに送信されます。 トレース・データを表示するには、次の2つのオプションがあります:
-
クラウド・オブジェクト・ストアに保存されたトレース・ファイルのSQLトレース・データを表示して分析します。 詳細については、「Autonomous Databaseでクラウド・オブジェクト・ストアに保存されたトレース・ファイルの表示」を参照してください。
-
ビュー
SESSION_CLOUD_TRACE
に保存されたSQLトレース・データを表示して分析します。 詳細については、「Autonomous DatabaseのSESSION_CLOUD_TRACEビューのトレース・データの表示」を参照してください。
Autonomous Databaseでクラウド・オブジェクト・ストアに保存されたトレース・ファイルの表示
SQLトレース・ファイルの出力ファイル名を示し、TKPROF
を使用してトレース・ファイル・データを編成および表示するコマンドを示します。
SQLトレース・ファイル・データを使用して、Autonomous Databaseでアプリケーションのパフォーマンスを分析します。 データベース・セッションでSQLトレースを無効にすると、データはDEFAULT_LOGGING_BUCKET
で構成されたクラウド・オブジェクト・ストア・バケットに書き込まれます。
SQLトレース機能は、セッションで収集されたトレース・データをCloud Object Storeに次の形式で書き込みます:
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
を実行して、トレース・ファイルを読取り可能な出力ファイルに変換できます。
TKPROF
ユーティリティの使用方法の詳細は、「Oracle Database SQLチューニング・ガイド」の「エンド・ツー・エンドのアプリケーション・トレースのツール」を参照してください。
Autonomous DatabaseのSESSION_CLOUD_TRACEビューのトレース・データの表示
SQLトレースを有効にすると、クラウド・オブジェクト・ストア上のトレース・ファイルに保存されたものと同じトレース情報が、トレースが有効化されたセッションのSESSION_CLOUD_TRACE
ビューで使用可能になります。
データベース・セッションにいる間、SESSION_CLOUD_TRACE
ビューでSQLトレース・データを表示できます。 SESSION_CLOUD_TRACE
ビューには2つの列が含まれます : ROW_NUMBER
およびTRACE
:
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 ORDER BY row_number;
SESSION_CLOUD_TRACE
のデータは、セッション中に保持されます。 ログアウトまたはセッションをクローズすると、データは使用できなくなります。
同じセッション内でSQLトレースが有効で複数回無効化されている場合、SESSION_CLOUD_TRACE
には、すべての反復のトレース・データが累積的に表示されます。 したがって、以前にトレースを無効にしたあとでセッションのトレースを再度有効にしても、以前の反復によって生成されたトレース・データは削除されません。