Autonomous Databaseでのオプティマイザ統計の管理

オプティマイザ統計の収集またはオプティマイザ・ヒントの有効化が必要な場合に実行するAutonomous Databaseのコマンドについて説明します。

オプティマイザ統計の収集またはオプティマイザ・ヒントの有効化のために実行するコマンドには、ワークロード(データ・ウェアハウス、トランザクション処理またはJSONデータベース)に応じて違いがあります。

データ・ウェアハウス・ワークロードでのオプティマイザ統計およびヒントの管理

オプティマイザの統計情報を収集したり、データ・ウェアハウスのワークロードを使用したオプティマイザのヒントを有効にしたりする必要があるときに実行するAutonomous Databaseコマンドについて説明します。

データ・ウェアハウス・ワークロードでのオプティマイザ統計の管理

データ・ウェアハウスのワークロードを使用したAutonomous Databaseは、SQLに発行されたダイレクト・パス操作でロードされた表のオプティマイザ統計を自動的に収集する(SQL*Loaderダイレクト・パスなど、SQLデータ処理をバイパスのダイレクト・パス・読み込み操作で統計は収集されません)。たとえば、DBMS_CLOUDパッケージを使用したロードでは、データベースがオプティマイザ統計を自動的に収集します。

従来のDML操作を使用して変更された表がある場合、それらの表のオプティマイザ統計を収集するコマンドを実行できます。たとえば、SHスキーマについて、次のコマンドを使用してスキーマ内のすべての表の統計を収集できます。

BEGIN
  DBMS_STATS.GATHER_SCHEMA_STATS('SH', options=>'GATHER AUTO');
END;
/

この例では、SHスキーマの失効した統計を含むすべての表の統計が収集されます。

ダイレクト・パス・ロードの詳細は、表のロードを参照してください。

オプティマイザ統計の詳細は、「データベースの概念」を参照してください。

データ・ウェアハウスのワークロードでのオプティマイザ・ヒントの管理

データ・ウェアハウスを使用するAutonomous Databaseは、デフォルトでSQL文内のオプティマイザ・ヒントおよびPARALLELヒントを無視します。アプリケーションでヒントに依存している場合、オプティマイザ・ヒントを有効にするには、ALTER SESSIONまたはALTER SYSTEMを使用して、セッション・レベルまたはシステム・レベルでパラメータOPTIMIZER_IGNORE_HINTSFALSEに設定します。たとえば、次のコマンドは、セッションでヒントを有効にします:

ALTER SESSION
   SET OPTIMIZER_IGNORE_HINTS=FALSE;

また、SQL文内のALTER SESSIONまたはALTER SYSTEMを使用して、セッション・レベルまたはシステム・レベルでOPTIMIZER_IGNORE_PARALLEL_HINTSFALSEに設定し、SQL文でPARALLELヒントを有効化できます。たとえば、次のコマンドを使用すると、セッションでPARALLELヒントが有効になります。

ALTER SESSION 
   SET OPTIMIZER_IGNORE_PARALLEL_HINTS=FALSE;

トランザクション処理およびJSONデータベース・ワークロードを使用したオプティマイザ統計およびヒントの管理

オプティマイザ統計の収集またはオプティマイザ・ヒントの有効化が必要な場合に実行するAutonomous Databaseのコマンドについて説明します。

トランザクション処理およびJSONデータベース・ワークロードを使用したオプティマイザ統計管理

Autonomous Databaseではオプティマイザ統計が自動的に収集されるため、このタスクを手動で実行する必要はなく、また、統計が常に最新であることを保証できます。自動統計収集はAutonomous Databaseで有効になっており、標準のメンテナンス・ウィンドウで実行されます。

ノート

自動統計収集のメンテナンス、ウィンドウは、Oracle Cloud Infrastructureコンソールのメンテナンス、ウィンドウとは異なります。Oracle Cloud Infrastructureのメンテナンス・ウィンドウには、システム・パッチ適用情報が表示されます。

自動統計収集のメンテナンス・ウィンドウの時間および自動 オプティマイザ統計収集の詳細は、『データベース管理者ガイド』を参照。

オプティマイザ統計の詳細は、SQLチューニング・ガイドを参照してください。

トランザクション処理およびJSONデータベース・ワークロードを使用したオプティマイザのヒントの管理

トランザクション処理およびJSONデータベース・ワークロードを使用するAutonomous Databaseでは、SQL文のオプティマイザ・ヒントおよびPARALLELヒントがデフォルトで考慮されます。オプティマイザ・ヒントを無効にするには、ALTER SESSIONまたはALTER SYSTEMを使用して、セッション・レベルまたはシステム・レベルでパラメータOPTIMIZER_IGNORE_HINTSTRUEに設定します。たとえば、次のコマンドは、セッションでヒントを無効にします:

ALTER SESSION
   SET OPTIMIZER_IGNORE_HINTS=TRUE;

また、SQL文内のPARALLELヒントを無効にするには、ALTER SESSIONまたはALTER SYSTEMを使用して、セッション・レベルまたはシステム・レベルでOPTIMIZER_IGNORE_PARALLEL_HINTSTRUEに設定します。

ALTER SESSION 
   SET OPTIMIZER_IGNORE_PARALLEL_HINTS=TRUE;