オプティマイザ統計のモニターおよび分析

管理対象データベースのオプティマイザ統計のモニター、統計収集タスクおよびオプティマイザ統計アドバイザ・タスクの分析、オプティマイザ統計アドバイザの推奨事項の実装を行います。

「オプティマイザ統計」セクションに移動するには、「管理対象データベースの詳細」ページに移動し、左側のペインの「リソース」の下にある「オプティマイザ統計」をクリックします。

オプティマイザ統計について

オプティマイザ統計は、データベースの詳細とデータベース内のオブジェクトを記述したデータのコレクションです。統計は、データ・ストレージと分散に関して統計的に正しい実態を示すもので、アクセス・パスを評価する際にオプティマイザによって使用されます。オプティマイザは統計を使用して、表、パーティションまたは索引から取得した行数(およびバイト数)の見積りを取得します。オプティマイザは、アクセスの負荷を見積り、考えられる計画の負荷を判断して、最も負荷の低い実行計画を選択します。

オプティマイザ統計には、次のものがあります:

  • 表統計: 行数、ブロック数および行の平均の長さが含まれます。

  • 列統計: 列内の固有の値とNULLの数およびデータの分散が含まれます。

  • 索引統計: リーフ・ブロック、索引レベルおよび索引クラスタリング・ファクタの数が含まれます。

  • システム統計: CPU、I/Oパフォーマンスおよび使用率が含まれます。

詳細は次の項を参照してください。

オプティマイザ統計収集について

Oracle Databaseにおけるオプティマイザ統計収集とは、固定オブジェクトを含むデータベース・オブジェクトのオプティマイザ統計を収集することです。Oracle Databaseではデフォルトで、自動オプティマイザ統計収集が使用されます。この場合、データベースでは、DBMS_STATSが自動的に実行され、統計が存在しないか失効しているすべてのスキーマ・オブジェクトのオプティマイザ統計が収集されます。このプロセスにより、オプティマイザの管理に関連する多数の手動タスクがなくなるため、統計が存在しなかったり失効していたりするために、最適ではない実行計画が生成されるリスクが大幅に低くなります。また、DBMS_STATSパッケージを使用して、手動で統計を収集することもできます。

Oracle Database 19cに導入されているオプティマイザ統計収集は、高い頻度で自動的に実行されます。この軽量のタスクでは、失効したオブジェクトの統計が定期的(デフォルトの間隔は15分)に収集されます。自動的に実行される統計収集ジョブとは対照的に、頻度の高いタスクでは、存在しないオブジェクトの統計のパージやオプティマイザ統計アドバイザの起動などのアクションが実行されません。

詳細は、次を参照してください:

オプティマイザ統計アドバイザについて

オプティマイザ統計アドバイザは組込みの診断ソフトウェアで、オプティマイザ統計の現在の収集方法、既存の統計収集ジョブの有効性、および収集された統計の品質を分析するタスクが実行されます。オプティマイザ統計アドバイザでは、現在の機能セットに基づくOracleのベスト・プラクティスが組み込まれたルールが管理されます。このため、アドバイザからは常に、統計収集の最新の推奨事項が提示されます。

オプティマイザ統計アドバイザの詳細は、『Oracle Database SQLチューニング・ガイド』オプティマイザ統計アドバイザに関する項を参照してください。

オプティマイザ統計サマリーのモニター

管理対象データベースのオブジェクト統計のサマリーと、オプティマイザ統計を収集するために実行されたタスクおよびサブタスクをモニターできます。

次のタイルは、「オプティマイザ統計」セクションの「サマリー」タブに表示され、オプティマイザ統計の概要を示します:

  • オブジェクト統計: 管理対象データベース内のオブジェクトについて収集された現在の統計が表示されます。この円グラフには、最新の統計と失効した統計のオブジェクトの数、または統計が収集されなかったオブジェクトの数に関するインサイトが表示されます。

  • 統計収集タスク: オプティマイザ統計収集タスクのステータスと数、または統計が毎日収集されるデータベース・オブジェクトのステータスと数が、過去7日間に渡って表示されます。チャートの各バーは、特定の日に実行されたタスクの数、または特定の日に統計が収集されたオブジェクトの数を示し、色はステータスを示しています。デフォルトでは、この棒グラフには、ステータス別に分類された自動オプティマイザ統計収集タスクの数の概要が表示されます。統計が収集されたオブジェクトの数を表示するには、「表示方法」ドロップダウン・リストで「オブジェクト・ステータス」オプションを選択します。また、「タイプ」ドロップダウン・リストでオプションを選択すると、自動、手動、またはその両方など、統計の収集に使用されるメカニズムに基づいて、タスクやオブジェクトの数を表示できます。

  • 統計収集タスク・リスト: 過去7日間のオプティマイザ統計収集タスクのリストと、各タスクに関する次の情報が表示されます:

    • タスク名: オプティマイザ統計収集タスクの名前。

    • ステータス: オプティマイザ統計収集タスクのステータス。

    • スコープ: データベース、スキーマ、索引、表などのオプティマイザ統計収集タスクのスコープ。

    • タイプ: オプティマイザ統計収集タスクのタイプ(「自動」または「手動」)。

    • ターゲット: オプティマイザ統計収集タスクが実行されたターゲット。

    • オブジェクト: スキャンされたデータベース・オブジェクトの合計数と、オプティマイザ統計収集タスクが完了したデータベース・オブジェクトの数。

    • 期間: オプティマイザ統計収集タスクの期間。

    • 開始時間: オプティマイザ統計収集タスクの開始時間。

    オプティマイザ統計収集タスクのリストの上にあるドロップダウン・リストおよびフィールドを使用して、タスクを特定のタイプまたはステータスでフィルタしたり、特定のタスクを検索したりできます。「統計収集タスク」棒グラフの特定のタスク・ステータス・バーをクリックして、その日に実行されたオプティマイザ統計収集タスクのリストを表示することもできます。「オブジェクト・ステータス」「統計収集タスク」棒グラフに表示されている場合、この機能は使用できません。

オプティマイザ統計収集タスク詳細の表示

「統計収集タスク・リスト」でタスクの名前をクリックして、「統計収集タスク詳細」ページに移動します。オプティマイザ統計収集タスクの詳細を表示するには、次の権限が必要です:

  • ANALYZE ANY
  • ANALYZE ANY DICTIONARY

「統計収集タスク詳細」ページには、次のタイルが表示されます:

  • 統計収集タスク情報: オプティマイザ統計収集タスクに関する情報が表示されます。
  • 統計収集サブタスク・ステータス: オプティマイザ統計収集タスクの一部として実行されたサブタスクのステータスが円グラフで表示されます。
  • オブジェクト・タイプ別統計収集サブタスク・ステータス: サブタスクのステータスの内訳が、データベース・オブジェクト・タイプ別に棒グラフで表示されます。チャートの棒はそれぞれ、データベース・オブジェクト・タイプを示し、色はサブタスクのステータスを示しています。
  • 統計収集サブタスク: オプティマイザ統計収集タスクの一部として実行されたサブタスクのリストが表示されます。

オプティマイザ統計アドバイザ・タスクの分析および推奨事項の実装

オプティマイザ統計アドバイザ・タスクをモニターおよび分析し、オプティマイザ統計アドバイザの推奨事項を実装できます。

ノート

Autonomous Databasesの場合、オプティマイザ統計アドバイザはデフォルトで無効になっており、「アドバイザ」タブにはデータが表示されません。

Autonomous Databasesでオプティマイザ統計アドバイザが有効になっているかどうかを確認するには、次の問合せを実行します:

select dbms_stats.get_prefs('AUTO_STATS_ADVISOR_TASK') from dual;

Autonomous Databasesのオプティマイザ統計アドバイザを有効にするには、次の問合せを実行します:

exec dbms_stats.set_global_prefs('AUTO_STATS_ADVISOR_TASK','TRUE');

次のタイルは、「オプティマイザ統計」セクションの「アドバイザ」タブに表示され、オプティマイザ統計アドバイザ・タスクの概要を示します:

  • タスクのサマリー: 過去7日間に実行されたオプティマイザ統計アドバイザ・タスクのステータスが表示されます。

  • アドバイザ・タスク: 過去7日間のそれぞれの日に実行されたオプティマイザ統計アドバイザ・タスクのステータスおよび数が表示されます。チャートの棒はそれぞれ、特定の日に実行されたタスクの数を示し、色はステータスを示しています。デフォルトでは、この棒グラフには、ステータス別に分類された自動オプティマイザ統計アドバイザ・タスクの数の概要が表示されます。「タイプ」ドロップダウン・リストでオプションを選択すると、自動、手動、またはその両方など、統計の収集に使用されるメカニズムに基づいて、オプティマイザ統計アドバイザ・タスクを表示できます。

  • アドバイザ・タスク・リスト: 過去7日間のオプティマイザ統計アドバイザ・タスクのリストと、各タスクに関する次の情報が表示されます:

    • 実行名: オプティマイザ統計アドバイザ・タスクの実行名。

    • タスク名: オプティマイザ統計アドバイザ・タスクの名前。

    • ステータス: オプティマイザ統計アドバイザ・タスクのステータス。

    • タイプ: オプティマイザ統計アドバイザ・タスクのタイプ(「自動」または「手動」)。

    • 結果: オプティマイザ統計アドバイザ・タスクの結果。

    • 期間: オプティマイザ統計アドバイザ・タスクの期間。

    • 開始時間: オプティマイザ統計アドバイザ・タスクの開始時間。

    • メッセージ: メッセージ(存在する場合)。

オプティマイザ統計アドバイザ・タスクのリストの上にあるドロップダウン・リストおよびフィールドを使用して、タスクを特定のタイプやステータスでフィルタしたり、特定の実行やタスクを検索したりできます。「アドバイザ・タスク」棒グラフの特定のタスク・ステータス・バーをクリックして、その日に実行されたオプティマイザ統計アドバイザ・タスクのリストを表示することもできます。

オプティマイザ統計アドバイザ推奨事項の実装

「アドバイザ・タスク・リスト」でオプティマイザ統計アドバイザ・タスクの実行名をクリックして、「オプティマイザ統計アドバイザ詳細」ページに移動します。

オプティマイザ統計アドバイザ詳細ページには、次のタイルが表示されます:

  • オプティマイザ統計アドバイザ情報: オプティマイザ統計アドバイザ・タスクに関する情報が表示されます。

  • オプティマイザ統計アドバイザ結果: オプティマイザ統計アドバイザ・タスクの結果が、次の情報とともに表示されます:

    • ルール: オラクル社が提供する標準で、オプティマイザ統計アドバイザのチェックは、これに基づいて実行されます。

    • 結果: オプティマイザ統計アドバイザによって表示される結果。

    • 推奨: オプティマイザ統計アドバイザによって提示される推奨事項。

    • 理由: オプティマイザ統計アドバイザによって提示される推奨事項の理由。

    • 詳細: 「アクション」アイコン(アクション)をクリックすると、結果の詳細や推奨事項の実装に使用できるスクリプトの例を表示できます。

「オプティマイザ統計アドバイザ詳細」ページで結果を確認した後、すべての推奨事項を実装するジョブを作成できます。

ノート

データベース・ユーザーに必要な権限がない場合、「オプティマイザ統計アドバイザの詳細」ページに結果が表示されない可能性があり、「すべての推奨事項の実装」ボタンは、タスクの結果がある場合でも使用できない場合があります。拡張診断資格証明は、必要な権限を持つユーザーに設定することをお薦めします。詳細については、Set Preferred Credentials in Database Managementを参照してください。

オプティマイザ統計アドバイザの推奨事項を実装するには:

  1. 「オプティマイザ統計アドバイザ結果」セクションの「すべての推奨事項の実装」をクリックします。
  2. 「すべての推奨事項の実装」パネルで:
    1. 次の情報を指定して、推奨事項を実装するジョブを作成します:
      1. ジョブ名: 自動的に移入されたジョブの名前を確認し、必要に応じて変更します。
      2. ジョブ説明: 自動的に移入されたジョブの説明を確認し、必要に応じて変更します。
    2. ジョブ・パラメータの指定:
      1. 資格証明タイプ: 使用可能なオプションの1つを選択して、管理対象データベースに接続するためのデータベース資格証明を指定します。資格証明タイプの詳細は、資格証明を使用した診断および管理タスクの実行を参照してください。
        ノート

        推奨事項を実装するジョブを発行するには、指定されたユーザーに次の権限が必要です:
        • ANALYZE ANY
        • ANALYZE ANY DICTIONARY
      2. Bucket name: Select the Oracle Object Storage bucket in which the job output will be stored.Oracle Object Storageバケットは、ジョブと同じコンパートメントにも、別のコンパートメントにも配置でき、このバケットを選択するには、必要なOracle Cloud Infrastructure Object Storageサービス権限を持っている必要があります。詳細は、診断および管理を使用するために必要な追加権限を参照してください。
    3. オプションで、「SQLの表示」をクリックして、実行されるSQL文を表示します。
    4. 「すべての推奨事項の実装」をクリックします。

これで、オプティマイザ統計アドバイザのすべての推奨事項が実装され、このジョブは、「管理対象データベースの詳細」ページの「ジョブ」セクションでモニターできるようになります。