Azure Database for PostgreSQL - フレキシブル サーバーでインデックス チューニングを構成する
適用対象: Azure Database for PostgreSQL - フレキシブル サーバー
インデックス チューニングは、チューニング セッションを実行できる頻度など、その動作を制御する一連のパラメーターを使って有効化、無効化、構成できます。
インデックス チューニングを有効にする
インデックス チューニングは、クエリ ストアに依存します。 Burstable 価格レベルでクエリ ストアを有効にすると、パフォーマンスに影響を与える可能性があるため、お勧めしません。 同じ理由から、Burstable レベルのサーバーに対するインデックス チューニングはお勧めしません。
インデックス チューニングはオプトイン機能であるため、既定ではサーバー上で有効になっていません。 これは特定のサーバー上のすべてのデータベースに対してグローバルに有効または無効にでき、データベースごとにオンまたはオフにすることはできません。
Azure portal でインデックス チューニングを有効にする (サーバー パラメーターを使用)
Azure portal を使用して以下を実行します。
Azure Database for PostgreSQL フレキシブル サーバー インスタンスを選択します。
リソース メニューの [設定] セクションで、[サーバー パラメーター] を選択します。
pg_qs.query_capture_mode
を検索します。最上位レベルのクエリと入れ子になったクエリのどちらを追跡するかに応じて、値を
TOP
またはALL
に設定します。 入れ子になったクエリは、関数またはプロシージャ内で実行されるクエリです。 インデックス チューニングの最大の利点を得るために、このパラメーターをALL
に設定することをお勧めします。index_tuning.mode
を検索します。値を
REPORT
に設定します。
Note
インデックス チューニングを無効にしても、クエリ ストアは自動的に無効にはなりません。
[クエリ ストアによるパフォーマンスの監視] を引き続き使用してワークロードのパフォーマンスを監視するかどうかを評価し、それを有効のままにするか、無効にする場合は pg_qs.query_capture_mode
を NONE
に設定します。
Azure portal でインデックス チューニングを有効にする (インデックス チューニングを使用)
Azure portal を使用して以下を実行します。
Azure Database for PostgreSQL フレキシブル サーバー インスタンスを選択します。
リソース メニューの [Query Performance Insight] セクションで、[インデックス チューニング] を選択します。
pg_qs.query_capture_mode
がNONE
に設定されているか、index_tuning.mode
がOFF
に設定されている場合、[インデックス チューニング] ページに、インデックス チューニングを有効にするオプションが表示されます。 2 つの [インデックス チューニングを有効にする] ボタンのいずれかを選択して、インデックス チューニング機能とそれに必要なクエリ ストアの依存関係 (クエリ ストアが無効になっている場合) を有効にします。その機能について検討する前に、デプロイが正常に完了するまで待ちます。
インデックス チューニングを有効にした後、最終的にインデックスの作成または削除のレコメンデーションが生成されるまで 12 時間かかると見ておいてください。その期間中にクエリ ストアによって収集されたワークロードがインデックス チューニング エンジンで分析されます。
重要
[インデックス チューニングを有効にする] ボタンを使用してインデックス チューニングを有効にした場合、pg_qs.query_capture_mode
が NONE
に設定されているときは、ALL
に変更されます。 既に TOP
または ALL
に設定されていた場合は、現在の状態のままになります。
インデックス チューニングを無効にする
また、対応するサーバー パラメーターを変更するか、[インデックス チューニング] ページを使用して、インデックス チューニングを無効にすることもできます。
Azure portal でインデックス チューニングを無効にする (サーバー パラメーターを使用)
Azure portal を使用して以下を実行します。
Azure Database for PostgreSQL フレキシブル サーバー インスタンスを選択します。
リソース メニューの [設定] セクションで、[サーバー パラメーター] を選択します。
index_tuning.mode
を検索します。値を
OFF
に設定します。
Note
インデックス チューニングを無効にしても、クエリ ストアは自動的に無効にはなりません。
[クエリ ストアによるパフォーマンスの監視] を引き続き使用してワークロードのパフォーマンスを監視するかどうかを評価し、それを有効のままにするか、無効にする場合は pg_qs.query_capture_mode
を NONE
に設定します。
Azure portal でインデックス チューニングを無効にする (インデックス チューニングを使用)
Azure portal を使用して以下を実行します。
Azure Database for PostgreSQL フレキシブル サーバー インスタンスを選択します。
リソース メニューの [Query Performance Insight] セクションで、[インデックス チューニング] を選択します。
[インデックス チューニングを無効にする] ボタンを選択して、この機能を無効にします。
その機能について検討する前に、デプロイが正常に完了するまで待ちます。
[クエリ ストアによるパフォーマンスの監視] を引き続き使用してワークロードのパフォーマンスを監視するかどうかを評価し、それを有効のままにするか、無効にする場合は
pg_qs.query_capture_mode
をNONE
に設定します。
重要
[インデックス チューニングを無効にする] ボタンを使用してインデックス チューニングを無効にすると、サーバー パラメーター 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_mode を TOP または 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 |
関連するコンテンツ
- Azure Database for PostgreSQL - フレキシブル サーバーでのインデックス チューニング。
- Azure Database for PostgreSQL - フレキシブル サーバーでのインデックス チューニングによって生成される、インデックスに関する推奨事項の使用。
- クエリ ストアに関するパフォーマンスを監視する。
- クエリ ストアの使用シナリオ - Azure Database for PostgreSQL - フレキシブル サーバー。
- クエリ ストアのベスト プラクティス - Azure Database for PostgreSQL - フレキシブル サーバー。
- Azure Database for PostgreSQL - フレキシブル サーバーでの Query Performance Insight。