Autonomous AI Databaseに関するオプティマイザ統計の管理

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

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

Lakehouseワークロードを使用したオプティマイザ統計およびヒントの管理

オプティマイザ統計を収集したり、レイクハウス・ワークロードでオプティマイザのヒントを有効にする必要がある場合に実行するAutonomous AI Databaseのコマンドについて説明します。

Lakehouseワークロードを使用したオプティマイザ統計の管理

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

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

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

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

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

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

Lakehouseワークロードを使用したオプティマイザ・ヒントの管理

レイクハウスを使用したAutonomous AI 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 AI Databaseのコマンドについて説明します。

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

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

ノート

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

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

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

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

トランザクション処理およびJSONデータベース・ワークロードを使用するAutonomous AI 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;