次の方法で共有


Azure Database for PostgreSQL - フレキシブル サーバーでインデックス チューニングを構成する

適用対象: Azure Database for PostgreSQL - フレキシブル サーバー

インデックス チューニングは、チューニング セッションを実行できる頻度など、その動作を制御する一連のパラメーターを使って有効化、無効化、構成できます。

インデックス チューニングを有効にする

インデックス チューニングは、クエリ ストアに依存します。 Burstable 価格レベルでクエリ ストアを有効にすると、パフォーマンスに影響を与える可能性があるため、お勧めしません。 同じ理由から、Burstable レベルのサーバーに対するインデックス チューニングはお勧めしません。

インデックス チューニングはオプトイン機能であるため、既定ではサーバー上で有効になっていません。 これは特定のサーバー上のすべてのデータベースに対してグローバルに有効または無効にでき、データベースごとにオンまたはオフにすることはできません。

Azure portal でインデックス チューニングを有効にする (サーバー パラメーターを使用)

Azure portal を使用して以下を実行します。

  1. Azure Database for PostgreSQL フレキシブル サーバー インスタンスを選択します。

  2. リソース メニューの [設定] セクションで、[サーバー パラメーター] を選択します。

    [設定] セクションの [サーバー パラメーター] ページを示すスクリーンショット。

  3. pg_qs.query_capture_mode を検索します。

    pg_qs.query_capture_mode サーバー パラメーターを検索する方法を示すスクリーンショット。

  4. 最上位レベルのクエリと入れ子になったクエリのどちらを追跡するかに応じて、値を TOP または ALL に設定します。 入れ子になったクエリは、関数またはプロシージャ内で実行されるクエリです。 インデックス チューニングの最大の利点を得るために、このパラメーターを ALL に設定することをお勧めします。

    pg_qs.query_capture_mode サーバー パラメーターの値を設定する方法を示すスクリーンショット。

  5. index_tuning.mode を検索します。

    REPORT に設定する index_tuning.mode サーバー パラメーターを検索する方法を示すスクリーンショット。

  6. 値を REPORTに設定します。

    index_tuning.mode の値を REPORT に設定する方法を示すスクリーンショット。

Note

インデックス チューニングを無効にしても、クエリ ストアは自動的に無効にはなりません。 [クエリ ストアによるパフォーマンスの監視] を引き続き使用してワークロードのパフォーマンスを監視するかどうかを評価し、それを有効のままにするか、無効にする場合は pg_qs.query_capture_modeNONE に設定します。

  1. [保存] を選択します。

    インデックス チューニングを有効にするように変更したパラメーターを保存する方法を示すスクリーンショット。

  2. 有効にした機能について検討する前に、デプロイが正常に完了するまで待ちます。

    変更したサーバー パラメーターを保存するために開始されたデプロイが正常に完了したときを示すスクリーンショット。

Azure portal でインデックス チューニングを有効にする (インデックス チューニングを使用)

Azure portal を使用して以下を実行します。

  1. Azure Database for PostgreSQL フレキシブル サーバー インスタンスを選択します。

  2. リソース メニューの [Query Performance Insight] セクションで、[インデックス チューニング] を選択します。

    [Query Performance Insight] セクションの下にある、インデックス チューニングを有効にするための [インデックス チューニング] メニュー オプションを示すスクリーンショット。

  3. pg_qs.query_capture_modeNONE に設定されているか、index_tuning.modeOFF に設定されている場合、[インデックス チューニング] ページに、インデックス チューニングを有効にするオプションが表示されます。 2 つの [インデックス チューニングを有効にする] ボタンのいずれかを選択して、インデックス チューニング機能とそれに必要なクエリ ストアの依存関係 (クエリ ストアが無効になっている場合) を有効にします。

    [インデックス チューニング] ページでインデックス チューニングを有効にする方法を示すスクリーンショット。

  4. その機能について検討する前に、デプロイが正常に完了するまで待ちます。

    インデックス チューニングを有効にするデプロイが完了したことを示すスクリーンショット。

  5. インデックス チューニングを有効にした後、最終的にインデックスの作成または削除のレコメンデーションが生成されるまで 12 時間かかると見ておいてください。その期間中にクエリ ストアによって収集されたワークロードがインデックス チューニング エンジンで分析されます。

重要

[インデックス チューニングを有効にする] ボタンを使用してインデックス チューニングを有効にした場合、pg_qs.query_capture_modeNONE に設定されているときは、ALL に変更されます。 既に TOP または ALL に設定されていた場合は、現在の状態のままになります。

インデックス チューニングを無効にする

また、対応するサーバー パラメーターを変更するか、[インデックス チューニング] ページを使用して、インデックス チューニングを無効にすることもできます。

Azure portal でインデックス チューニングを無効にする (サーバー パラメーターを使用)

Azure portal を使用して以下を実行します。

  1. Azure Database for PostgreSQL フレキシブル サーバー インスタンスを選択します。

  2. リソース メニューの [設定] セクションで、[サーバー パラメーター] を選択します。

    [設定] セクションの [サーバー パラメーター] ページを示すスクリーンショット。

  3. index_tuning.mode を検索します。

    OFF に設定する index_tuning.mode サーバー パラメーターを検索する方法を示すスクリーンショット。

  4. 値を OFFに設定します。

    index_tuning.mode の値を OFF に設定する方法を示すスクリーンショット。

Note

インデックス チューニングを無効にしても、クエリ ストアは自動的に無効にはなりません。 [クエリ ストアによるパフォーマンスの監視] を引き続き使用してワークロードのパフォーマンスを監視するかどうかを評価し、それを有効のままにするか、無効にする場合は pg_qs.query_capture_modeNONE に設定します。

  1. [保存] を選択します。

    インデックス チューニングを無効にするように変更したパラメーターを保存する方法を示すスクリーンショット。

  2. 機能が無効になったと見なす前に、デプロイが正常に完了するまで待ちます。

    変更したサーバー パラメーターを保存するために開始されたデプロイが正常に完了したときを示すスクリーンショット。

Azure portal でインデックス チューニングを無効にする (インデックス チューニングを使用)

Azure portal を使用して以下を実行します。

  1. Azure Database for PostgreSQL フレキシブル サーバー インスタンスを選択します。

  2. リソース メニューの [Query Performance Insight] セクションで、[インデックス チューニング] を選択します。

    [Query Performance Insight] セクションの下にある、インデックス チューニングを無効にするための [インデックス チューニング] メニュー オプションを示すスクリーンショット。

  3. [インデックス チューニングを無効にする] ボタンを選択して、この機能を無効にします。

    [インデックス チューニング] ページでインデックス チューニングを無効にする方法を示すスクリーンショット。

  4. その機能について検討する前に、デプロイが正常に完了するまで待ちます。

    インデックス チューニングを無効にするデプロイが完了したことを示すスクリーンショット。

  5. [クエリ ストアによるパフォーマンスの監視] を引き続き使用してワークロードのパフォーマンスを監視するかどうかを評価し、それを有効のままにするか、無効にする場合は pg_qs.query_capture_modeNONE に設定します。

重要

[インデックス チューニングを無効にする] ボタンを使用してインデックス チューニングを無効にすると、サーバー パラメーター pg_qs.query_capture_mode はそのままになります。

構成オプション

インデックス チューニングを有効にすると、index_tuning.analysis_interval サーバー パラメーターで構成された頻度 (既定値は 720 分つまり 12 時間) で起動し、その期間中にクエリ ストアによって記録されたワークロードの分析が開始されます。

index_tuning.analysis_interval の値を変更した場合、スケジュールされている次回の実行の完了後にのみ適用されることに注意してください。 そのため、たとえば、インデックス チューニングをある日の午前 10:00 に有効にした場合、index_tuning.analysis_interval の既定値は 720 分であるため、最初の実行は同じ日の午後 10:00 に開始するようにスケジュールされます。 午前 10:00 から午後 10:00 の間に index_tuning.analysis_interval の値に加えた変更は、その初回スケジュールには影響しません。 スケジュールされた実行が完了したときにのみ、index_tuning.analysis_interval に対して設定されている現在の値が読み取られ、その値に従って次回の実行がスケジュールされます。

次のオプションは、インデックス チューニング パラメーターを構成するために使用できます。

パラメーター 説明 [Default] 範囲 単位
index_tuning.analysis_interval index_tuning.mode が REPORT に設定されている場合に各インデックス最適化セッションがトリガーされる頻度を設定します。 720 60 - 10080
index_tuning.max_columns_per_index 推奨されるインデックスのインデックス キーに含めることができる列の最大数。 2 1 - 10
index_tuning.max_index_count 1 つの最適化セッション中に各データベースに推奨される最大インデックス数。 10 1 - 25
index_tuning.max_indexes_per_table 各テーブルに推奨できるインデックスの最大数。 10 1 - 25
index_tuning.max_queries_per_database インデックスを推奨できるデータベースあたりの最も低速なクエリの数。 25 5 - 100
index_tuning.max_regression_factor 1 つの最適化セッション中に分析された任意のクエリに対して、推奨されるインデックスによって発生する許容できる回帰。 0.1 0.05 - 0.2 割合
index_tuning.max_total_size_factor ある特定のデータベースのすべての推奨されるインデックスで使用できる最大合計サイズ (ディスク領域の合計に対する割合)。 0.1 0 - 1 割合
index_tuning.min_improvement_factor 推奨されるインデックスが、1 つの最適化セッション中に分析されたクエリの少なくとも 1 つに対して提供する必要があるコストの改善。 0.2 0 - 20 割合
index_tuning.mode インデックスの最適化を無効 (OFF) に、または有効にして推奨事項のみを出力するように構成します。 pg_qs.query_capture_modeTOP または ALL に設定して、クエリ ストアを有効にしておく必要があります。 OFF OFF, REPORT
index_tuning.unused_dml_per_table テーブルに影響を与える 1 日あたりの平均 DML 操作の最小数。それらの未使用のインデックスは削除対象と見なされます。 1000 0 - 9999999
index_tuning.unused_min_period システム統計に基づいてインデックスが使用されておらず、削除対象と見なされる最小日数。 35 30 - 70
index_tuning.unused_reads_per_table テーブルに影響を与える 1 日あたりの平均読み取り操作の最小数。それらの未使用のインデックスは削除対象と見なされます。 1000 0 - 9999999