Share via


sys.database_query_store_options (Transact-SQL)

適用対象: SQL Server 2016 (13.x) 以降 Azure SQL DatabaseAzure SQL Managed InstanceAzure 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 is desired_state_descREAD_WRITE と is actual_state_desc の場合は、readonly_reasonクエリ ストアがREAD_ONLY読み取り専用モードである理由を示すビット マップを返します。

1 - データベースが読み取り専用モードです
2 - データベースがシングル ユーザー モードである
4 - データベースが緊急モードです
8 - データベースはセカンダリ レプリカです (可用性グループと Azure SQL Database geo レプリケーションに適用されます)。 この値は、実質的にセカンダリ レプリカでのみ readable 確認できます
65536- クエリ ストアオプションによって設定されたサイズ制限にmax_storage_size_mb達しました。 このオプションの詳細については、ALTER DATABA Standard Edition Standard Edition T オプションを参照してください
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 プレミアム エディションの場合、既定値は 1 GB で、SQL Database Basic エディションの場合、既定値は 10 MB (メガバイト)です。

ステートメントを使用して変更します ALTER DATABASE <database> SET QUERY_STORE (MAX_STORAGE_SIZE_MB = <size>)
stale_query_threshold_days bigint クエリの情報がクエリ ストアに保持される日数。 既定値は 300アイテム保持ポリシーを無効にするように設定します。
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 データの総量が最大サイズに近づくと、クリーンup を自動的にアクティブ化するかどうかを制御します。

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

サイズのクリーンアップでは、まず最も安価で最も古いクエリを削除します。 約 80%max_storage_size_mb に達すると停止します。
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 アクセス許可が必要です。

解説

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