Query Store を有効化し、推奨設定を適用して状態を確認する
SQL ServerQuery Storeコマンド
ALTER DATABASE [Musteri] SET QUERY_STORE = ON;
ALTER DATABASE [Musteri] SET QUERY_STORE (
OPERATION_MODE = READ_WRITE,
QUERY_CAPTURE_MODE = AUTO,
MAX_STORAGE_SIZE_MB = 2048,
INTERVAL_LENGTH_MINUTES = 15,
DATA_FLUSH_INTERVAL_SECONDS = 900,
CLEANUP_POLICY = (STALE_QUERY_THRESHOLD_DAYS = 30),
SIZE_BASED_CLEANUP_MODE = AUTO,
MAX_PLANS_PER_QUERY = 200,
WAIT_STATS_CAPTURE_MODE = ON);
-- State: if actual_state dropped to READ_ONLY, check readonly_reason
USE [Musteri];
SELECT actual_state_desc, desired_state_desc, readonly_reason,
current_storage_size_mb, max_storage_size_mb,
query_capture_mode_desc, size_based_cleanup_mode_desc, wait_stats_capture_mode_desc
FROM sys.database_query_store_options;概要
データベースで Query Store を有効にし、クエリテキスト、実行計画、実行時統計、待機統計を時間間隔ごとに永続化し始める。オプションでストレージ上限、クリーンアップ、キャプチャモードを定義する。
使用する場面
新しいデータベースの本番稼働時、バージョン / 互換性レベルのアップグレード前 (ベースライン取得のため)、または実行計画の性能低下が疑われる場合。
注意
MAX_STORAGE_SIZE_MB に達すると、Query Store は通知なしに READ_ONLY (readonly_reason = 65536) に切り替わり、収集を停止する。current_storage_size_mb を監視する。QUERY_CAPTURE_MODE = ALL は、アドホックの多いワークロードではストレージをすぐに埋め、オーバーヘッドを増やす。非常に高負荷な OLTP システムでは QDS_* 待機が現れることがある。OFF にしても収集済みデータは残る。CLEAR で削除される。