クエリ ストア関連のベスト プラクティス
適用対象: Azure Database for PostgreSQL - 単一サーバー
重要
Azure Database for PostgreSQL - 単一サーバーは廃止パスにあります。 Azure Database for PostgreSQL - フレキシブル サーバーにアップグレードすることを強くお勧めします。 Azure Database for PostgreSQL - フレキシブル サーバーへの移行の詳細については、Azure Database for PostgreSQL - 単一サーバーの現状に関するページを参照してください。
この記事では、Azure Database for PostgreSQL でクエリ ストアを使用するさいのベスト プラクティスについて説明します。
最適なクエリ キャプチャ モードを設定します。
重要なデータをクエリ ストアをキャプチャさせます。
pg_qs.query_capture_mode | シナリオ |
---|---|
すべて | すべてのクエリとその実行頻度や他の統計情報の観点から徹底的にワークロードを分析します。 ワークロード中の新しいクエリを特定します。 アドホック クエリを使用してユーザーまたは自動化によるパラメーター化が特定されているかどうかを検出します。 すべて はリソース消費の増加というコストを伴います。 |
上位 | 上位のクエリ (クライアントによって発行されたクエリ) に注目します。 |
なし | 調査したいクエリ セットと時間枠をすでにキャプチャしているため、他のクエリによって生まれる邪魔なものを排除したい考えているとします。 テストおよびベンチマーク環境では、なし が適切です。 重要な新しいクエリを追跡、最適化する機会を逃す可能性があるため、なし を使用するときは注意してください。 過去の時間枠のデータを回復することはできません。 |
クエリ ストアには、待機統計用のストアもあります。 待機統計を制御する追加のキャプチャ モード クエリがあります。 pgms_wait_sampling.query_capture_mode は なし または すべて に設定できます。
Note
pg_qs.query_capture_mode は pgms_wait_sampling.query_capture_mode に優先します。 Pg_qs.query_capture_mode が なし の場合、pgms_wait_sampling.query_capture_mode の設定は何の働きもしません。
必要なデータを保持します。
Pg_qs.retention_period_in_daysパラメーターには、クエリ ストアのデータ保持期間を日数で指定します。 この期間より古いクエリと統計データは削除されます。 既定では、クエリ ストアは 7 日の間データを保持するように構成されます。 使用する予定がない履歴データを残さないでください。 もっと長くデータを保持する必要がある場合は、値を大きくします。
待機統計のサンプリング頻度を設定します。
Pgms_wait_sampling.history_periodパラメーターには、待機イベントをサンプリングする頻度 (ミリ秒単位) を指定します。 値が小さいほど、サンプリング頻度は増します。 より詳しい情報を得られますが、リソースの消費量が大きくなるというコストが伴います。 サーバーの負荷が大きい場合、あるいはきめの細かい情報が必要ない場合は、値を大きくしてください。
クエリ ストアに対するクイック インサイトを取得します。
Azure portal にある Query Performance Insight を利用して、クエリ ストア内のデータに対するクイック インサイトを取得することができます。 視覚化することによって、長期にわたって最も長い期間実行されているクエリと最も長い待機イベントが明らかになります。
次のステップ
- Azure portal または Azure CLI を使用してパラメーターを取得または設定する方法を学びます。