sys.database_query_store_options (Transact-SQL)

適用対象: SQL Server 2016 (13.x) 以降 Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics

このデータベースのクエリ ストア オプションを返します。

列名 データ型 説明
desired_state smallint ユーザーによって明示的に設定クエリ ストアの目的の操作モードを示します。

0 = OFF
1 = READ_ONLY
2 = READ_WRITE
4 = READ_CAPTURE_SECONDARY
desired_state_desc nvarchar(60) クエリ ストアの目的の操作モードのテキスト説明:

OFF
READ_ONLY
READ_WRITE
READ_CAPTURE_SECONDARY
actual_state smallint クエリ ストアの操作モードを示します。 ユーザーが必要とする必要な状態の一覧に加えて、実際の状態をエラー状態にすることができます。

0 = OFF
1 = READ_ONLY
2 = READ_WRITE
3 = ERROR
4 = READ_CAPTURE_SECONDARY
actual_state_desc nvarchar(60) クエリ ストアの実際の操作モードのテキスト説明。

OFF
READ_ONLY
READ_WRITE
ERROR
READ_CAPTURE_SECONDARY

実際の状態が目的の状態と異なる場合があります。
- データベースが読み取り専用モードに設定されている場合、またはクエリ ストアサイズが構成されているクォータを超えた場合、読み取り/書き込みを指定した場合でも、クエリ ストアが読み取り専用モードで動作する可能性があります。
- 極端なシナリオでは、クエリ ストア内部エラーが原因で ERROR 状態になる可能性があります。 SQL Server 2017 (14.x) 以降のバージョンでは、この問題が発生した場合は、影響を受けるデータベースでsp_query_store_consistency_checkストアド プロシージャを実行することで、クエリ ストアを復旧できます。 sp_query_store_consistency_checkの実行が機能しない場合、または SQL Server 2016 (13.x) を使用している場合は、次を実行してデータをクリアする必要がありますALTER DATABASE [YourDatabaseName] SET QUERY_STORE CLEAR ALL;
readonly_reason int desired_state_descREAD_WRITEされ、actual_state_descREAD_ONLYされると、readonly_reasonはビット マップを返して、クエリ ストアが読み取り専用モードになっている理由を示します。

1 - データベースが読み取り専用モードです
2 - データベースがシングル ユーザー モードである
4 - データベースが緊急モードです
8 - データベースはセカンダリ レプリカです (可用性グループと Azure SQL Database geo レプリケーションに適用されます)。 この値は、 readable セカンダリ レプリカでのみ効果的に確認できます
65536- クエリ ストアが、max_storage_size_mb オプションによって設定されたサイズ制限に達しました。 このオプションの詳細については、ALTER DATABASE SET オプションを参照してください。
131072- クエリ ストア内の異なるステートメントの数が内部メモリ制限に達しました。 クエリ ストアを読み取り/書き込みモードに転送できるようにするには、不要なクエリを削除するか、上位のサービス レベルにアップグレードすることを検討してください。
262144 - ディスクに保持されるのを待機しているメモリ内項目のサイズが、内部メモリ制限に達しました。 クエリ ストアは、メモリ内の項目がディスクに保持されるまで、一時的に読み取り専用モードになります。
524288 - データベースのディスク サイズの制限に達しました。 クエリ ストアはユーザー データベースの一部であるため、データベースの空き領域がなくなった場合は、クエリ ストアがこれ以上拡大できないことを意味します。

クエリ ストア操作モードを読み取り/書き込みモードに切り替えるには、クエリ データを継続的に収集クエリ ストア確認する方法を参照してください
current_storage_size_mb bigint ディスク上のクエリ ストアのサイズ (メガバイト単位)。
flush_interval_seconds bigint クエリ ストア データをディスクに定期的にフラッシュする期間 (秒単位)。 既定値は 900 (15 分) です。

ALTER DATABASE <database> SET QUERY_STORE (DATA_FLUSH_INTERVAL_SECONDS = <interval>) ステートメントを使用して変更します。
interval_length_minutes bigint 統計の集計間隔 (分)。 任意の値は使用できません。 15101530601440 分のいずれかの値を使用します。 既定値は 60 分です。
max_storage_size_mb bigint クエリ ストアの最大ディスク サイズ (MB)。 既定値は、SQL Server 2017 (14.x) まで 100 MB、SQL Server 2019 (15.x) 以降のバージョンでは 1 GB です。

SQL Database Premium エディションの場合、既定値は 1 GB で、SQL Database Basic エディションの場合、既定値は 10 MB です。

ALTER DATABASE <database> SET QUERY_STORE (MAX_STORAGE_SIZE_MB = <size>) ステートメントを使用して変更します。
stale_query_threshold_days bigint クエリの情報がクエリ ストアに保持される日数。 既定値は 30。 アイテム保持ポリシーを無効にするには、 0 に設定します。
SQL Database Basic エディションの場合、既定値は 7 日間です。

ALTER DATABASE <database> SET QUERY_STORE (CLEANUP_POLICY = (STALE_QUERY_THRESHOLD_DAYS = <value>)) ステートメントを使用して変更します。
max_plans_per_query bigint 格納されているプランの最大数を制限します。 既定値は 200。 最大値に達すると、クエリ ストアはそのクエリの新しいプランのキャプチャを停止します。 0に設定すると、キャプチャされたプランの数の制限がなくなります。

ALTER DATABASE<database> SET QUERY_STORE (MAX_PLANS_PER_QUERY = <n>) ステートメントを使用して変更します。
query_capture_mode smallint 現在アクティブなクエリ キャプチャ モード:

1 = ALL - すべてのクエリがキャプチャされます。 これは、SQL Server 2016 (13.x) 以降のバージョンの既定の構成値です。

2 = AUTO - 実行数とリソース消費量に基づいて関連するクエリをキャプチャします。 これは、SQL Database の既定の構成値です。

3 = NONE - 新しいクエリのキャプチャを停止します。 クエリ ストアは、既にキャプチャされたクエリのコンパイルとランタイムの統計情報を収集し続けます。 重要なクエリのキャプチャが間違う可能性があるため、この構成は慎重に使用してください。

4 = CUSTOM - QUERY_CAPTURE_POLICY オプションを使用して、クエリ キャプチャ ポリシーをより詳細に制御できます

適用対象: SQL Server 2019 (15.x) 以降のバージョン。
query_capture_mode_desc nvarchar(60) クエリ ストアの実際のキャプチャ モードのテキスト説明:

ALL (SQL Server 2016 (13.x) 以降のバージョンの既定値)

AUTO (SQL Database の既定値)

NONE

CUSTOM
capture_policy_execution_count int クエリ キャプチャ モード CUSTOM ポリシー オプション。 評価期間中、クエリを実行する回数を定義します。 既定値は、30 です。

適用対象: SQL Server 2019 (15.x) 以降のバージョン。
capture_policy_total_compile_cpu_time_ms bigint クエリ キャプチャ モード CUSTOM ポリシー オプション。 評価期間中、クエリで使用されるコンパイル CPU 時間の合計経過時間を定義します。 既定値は 1000 です。

適用対象: SQL Server 2019 (15.x) 以降のバージョン。
capture_policy_total_execution_cpu_time_ms bigint クエリ キャプチャ モード CUSTOM ポリシー オプション。 評価期間中、クエリによって使用される実行 CPU の合計経過時間を定義します。 既定値は、100 です。

適用対象: SQL Server 2019 (15.x) 以降のバージョン。
capture_policy_stale_threshold_hours int クエリ キャプチャ モード CUSTOM ポリシー オプション。 クエリをキャプチャすべきかどうかを決定する評価の間隔を定義します。 既定値は 24 時間です。

適用対象: SQL Server 2019 (15.x) 以降のバージョン。
size_based_cleanup_mode smallint データの総量が最大サイズに近づくときにクリーンアップを自動的にアクティブ化するかどうかを制御します。

0 = OFF - サイズベースのクリーンアップは自動的にアクティブ化されません。
1 = AUTO- ディスク上のサイズがmax_storage_size_mb90% に達すると、サイズベースのクリーンアップが自動的にアクティブ化されます。 これは既定の構成値です。

サイズのクリーンアップでは、まず最も安価で最も古いクエリを削除します。 max_storage_size_mbの約80% に達すると停止します。
size_based_cleanup_mode_desc nvarchar(60) クエリ ストアの実際のサイズベースのクリーンアップ モードのテキスト説明:

OFF
AUTO (既定)
wait_stats_capture_mode smallint 待機統計のキャプチャクエリ ストア実行するかどうかを制御します。

0 = OFF
1 = ON

適用対象: SQL Server 2017 (14.x) 以降のバージョン。
wait_stats_capture_mode_desc nvarchar(60) 実際の待機統計キャプチャ モードのテキスト説明:

OFF
ON (既定)

適用対象: SQL Server 2017 (14.x) 以降のバージョン。
actual_state_additional_info nvarchar (4000) 現在未使用です。

アクセス許可

VIEW DATABASE STATE アクセス許可が必要です。

解説

READ_CAPTURE_SECONDARYactual_state_desc値は、セカンダリ レプリカのクエリ ストアが有効になっている場合の予期される状態です。 詳細については、「セカンダリ レプリカ のクエリ ストア」を参照してください。