Autonomous DatabaseでのSQLトレースの実行
SQLトレースを使用すると、アプリケーションの負荷の高いSQL文など、過剰なデータベース・ワークロードのソースを識別できます。
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には、すべての反復のトレース・データが累積的に表示されます。 したがって、以前にトレースを無効にしたあとでセッションのトレースを再度有効にしても、以前の反復によって生成されたトレース・データは削除されません。