DBAtlas · データベース運用アトラス

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 で削除される。

DBAtlas で開く →

関連項目