フレキシブル サーバーでのクエリ ストアのベスト プラクティスAzure Database for PostgreSQL

この記事では、Azure Database for PostgreSQL フレキシブル サーバーでクエリ ストアを使用するためのベスト プラクティスについて説明します。

最適なクエリ取り込みモードを設定する

重要なクエリをキャプチャするようにクエリ ストアを構成します。

pg_qs.query_capture_mode シナリオ
all (最上位レベルや入れ子になった) すべてのクエリとその実行頻度、およびその他の統計情報を取り込みます。 このモードを使用して、ワークロード内の新しいクエリを識別します。 ユーザー定義のパラメーター化または自動化によるパラメーター化の機会を特定するために、アドホック クエリが使用されているかどうかを検出します。
top 最上位レベルのクエリのみをキャプチャします。 最上位レベルのクエリとは、クライアントによって直接発行されたクエリのことです。 これらのクエリには、入れ子になったステートメント (プロシージャまたは関数内で実行されるステートメント) は含まれません。
none 新しいクエリはキャプチャされません。 調査する時間枠にクエリ セットが既にキャプチャされていて、新しいクエリの記録を続行しない場合は、この値を設定します。 none は、環境のテストとベンチマークに適しています。 重要な新しいクエリを追跡して最適化する機会を逃す可能性があるため、 none は慎重に使用してください。

pg_qs.query_capture_modepgms_wait_sampling.query_capture_mode よりも優先されます。 pg_qs.query_capture_modenone の場合、pgms_wait_sampling.query_capture_mode 設定は無効となります。

必要なデータを保持する

pg_qs.retention_period_in_days パラメーターは、クエリ ストアのデータ保有期間を指定します。 システムは、その期間より古い統計を削除します。 また、参照する統計がないクエリのクエリ テキストまたはクエリ プランも削除されます。 既定では、クエリ ストアはデータを 7 日間保持するように構成されています。 使用予定のない履歴データは保持しないようにしてください。 もっと長くデータを保持する必要がある場合は、この値を大きくします。