機械翻訳について

Autonomous DatabaseでのSQLトレースの実行

SQLトレースを使用すると、アプリケーションの負荷の高いSQL文など、過剰なデータベース・ワークロードのソースを識別できます。

Autonomous DatabaseでのSQLトレースの構成

Autonomous DatabaseでSQLトレースを構成するステップを示します。

ノート:

SQLトレースを有効にすると、トレース収集が有効な間、セッションのアプリケーション・パフォーマンスが低下する可能性があります。 トレース・データの収集および保存のオーバーヘッドのため、このマイナスのパフォーマンスへの影響が予想されます。

SQLトレース用にデータベースを構成するには、次の手順を実行します:

  1. クラウド・オブジェクト・ストレージにトレース・ファイルを格納するバケットを作成します。

    SQLトレース・ファイルを保存するために、Autonomous Databaseがサポートするすべてのクラウド・オブジェクト・ストアにバケットを配置できます。

    たとえば、Oracle Cloud Infrastructure Object Storageにバケットを作成するには、次の手順を実行

    1. Oracle Cloud Infrastructureコンソールを開きます。
    2. メニューから「ストレージ」を選択します。
    3. ストレージで、Object Storage and Archive Storageを選択します。
    4. 「バケットの作成」をクリックします。
    5. 「バケットの作成」ページで、「バケット名」を入力し、「作成」をクリックします。

    Oracle Cloud Infrastructure Object Storageを使用している場合、SQLトレース・ファイルは、標準のストレージ層で作成されたバケットでのみサポートされていることに注意してください。バケットの作成時に、「標準」をストレージ層として選択してください。 Standard Object Storage Tierの詳細は、「オブジェクト・ストレージの概要」を参照してください。

  2. DBMS_CLOUD.CREATE_CREDENTIALを使用して、クラウド・オブジェクト・ストレージ・アカウントの資格証明を作成します。

    たとえば:

    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'DEF_CRED_NAME',
        username => 'adb_user@example.com', 
        password => 'password'
    );
    END;
    /

    Oracle Cloud Infrastructureの場合、usernameOracle Cloud Infrastructureユーザー名です。 passwordがOracle Cloud Infrastructure認証トークンです。 詳細は、認証トークンの操作を参照してください。

    クラウド・オブジェクト・ストレージに応じたパラメータとその値の詳細は、「CREATE_CREDENTIALプロシージャ」を参照してください。

  3. 初期化パラメータを設定して、SQLトレース・ファイルのバケットのクラウド・オブジェクト・ストレージURLを指定し、クラウド・オブジェクト・ストレージにアクセスするための資格証明を指定します。
    1. データベース・プロパティDEFAULT_LOGGING_BUCKETを設定して、クラウド・オブジェクト・ストレージにロギング・バケットを指定します。

      たとえば、Oracle Cloud Infrastructure Object Storageを使用してバケットを作成する場合:

      SET DEFINE OFF;
      ALTER DATABASE PROPERTY SET 
         DEFAULT_LOGGING_BUCKET = 'https://objectstorage.us-ashburn-1.oraclecloud.com/n/namespace-string/b/bucket_name/o/';

      ここで、namespace-stringOracle Cloud Infrastructure Object Storageネームスペース、bucket_nameは以前に作成したバケットの名前です。 詳細については、「オブジェクト・ストレージのネームスペースについて」を参照してください。

      リージョンのリストは、「リージョンおよび可用性ドメイン」を参照してください。

      SQLトレース・ファイルに使用するクラウド・オブジェクト・ストアには、Autonomous Databaseでサポートされる任意のクラウド・オブジェクト・ストアを使用できます。

    2. データベース・プロパティDEFAULT_CREDENTIALを、ステップ2で作成した資格証明に設定します。

      資格証明にスキーマ名を含める必要があります。 この例では、スキーマは" ADMIN "です。

      たとえば:

      ALTER DATABASE PROPERTY SET DEFAULT_CREDENTIAL = 'ADMIN.DEF_CRED_NAME';

Autonomous DatabaseでのSQLトレースの有効化

データベース・セッションに対してSQLトレースを有効にするステップを示します。

ノート:

SQLトレースを有効にすると、トレース収集が有効な間、セッションのアプリケーション・パフォーマンスが低下する可能性があります。 トレース・データの収集および保存のオーバーヘッドのため、このマイナスのパフォーマンスへの影響が予想されます。

SQLトレースを有効にする前に、SQLトレース・ファイルを保存するようにデータベースを構成する必要があります。 詳細については、「Autonomous DatabaseでのSQLトレースの構成」を参照してください。

SQLトレースを有効にするには、次の手順を実行します:

  1. (オプション)アプリケーションのクライアント識別子を設定します。 このステップはオプションですが、推奨されています。 SQLトレースでは、トレース・ファイルがCloud Object Storeに書き込まれるときに、クライアント識別子をトレース・ファイル名のコンポーネントとして使用します。

    たとえば:

    BEGIN
      DBMS_SESSION.SET_IDENTIFIER('sqlt_test');
    END;
    /
  2. (オプション)アプリケーションのモジュール名を設定します。 このステップはオプションですが、推奨されています。 SQLトレースでは、トレース・ファイルがCloud Object Storeに書き込まれるときに、モジュール名がトレース・ファイル名のコンポーネントとして使用されます。

    たとえば:

    BEGIN
      DBMS_APPLICATION_INFO.SET_MODULE('modname', null);
    END;
    /
  3. SQLトレース機能を有効にします。
    ALTER SESSION SET SQL_TRACE = TRUE;
  4. ワークロードを実行します。

    このステップでは、アプリケーション全体またはアプリケーションの特定の部分を実行します。 データベース・セッションでワークロードを実行すると、SQLトレース・データが収集されます。

  5. SQLトレースを無効にします。

    SQLトレースを無効にすると、セッションの収集されたデータは、セッションの表、およびSQLトレースの設定時に構成するバケット内のトレース・ファイルに書き込まれます。 詳細は「Autonomous DatabaseでのSQLトレースの無効化」を参照してください。

Autonomous DatabaseでのSQLトレースの無効化

Autonomous DatabaseでSQLトレースを無効にするステップを示します。

SQLトレースを無効にするには、次を実行します:

  1. SQLトレース機能を無効にします。
    ALTER SESSION SET SQL_TRACE = FALSE;
  2. (オプション)環境に必要な場合、データベース・プロパティDEFAULT_LOGGING_BUCKETをリセットして、クラウド・オブジェクト・ストレージのログ・バケットの値をクリアできます。

    たとえば:

    ALTER DATABASE PROPERTY SET DEFAULT_LOGGING_BUCKET = '';

SQLトレースを無効にすると、トレースが有効化されているセッションの実行中に収集されたトレース・データが表にコピーされ、クラウド・オブジェクト・ストアのトレース・ファイルに送信されます。 トレース・データを表示するには、次の2つのオプションがあります:

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を実行して、トレース・ファイルを読取り可能な出力ファイルに変換できます。

  1. オブジェクト・ストアからローカル・システムにトレース・ファイルをコピーします。
  2. トレース・ファイルが保存されるディレクトリに移動します。
  3. 次の構文を使用して、オペレーティング・システム・プロンプトからTKPROFユーティリティを実行します:
    tkprof filename1 filename2 [waits=yes|no] [sort=option] [print=n]
        [aggregate=yes|no] [insert=filename3] [sys=yes|no] [table=schema.table]
        [explain=user/password] [record=filename4] [width=n]
    

    必要な引数は、入力ファイルと出力ファイルのみです。

  4. オンライン・ヘルプを表示するには、引数なしで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には、すべての反復のトレース・データが累積的に表示されます。 したがって、以前にトレースを無効にしたあとでセッションのトレースを再度有効にしても、以前の反復によって生成されたトレース・データは削除されません。