適用対象: Sql Server 2016 (13.x) 以降のバージョン
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL データベース
このデータベースのクエリ ストア オプションを返します。
| 列名 | データの種類 | Description |
|---|---|---|
desired_state |
smallint | ユーザーによって明示的に設定クエリ ストアの目的の操作モードを示します。0 = OFF1 = READ_ONLY2 = READ_WRITE4 = READ_CAPTURE_SECONDARY |
desired_state_desc |
nvarchar(60) | クエリ ストアの目的の操作モードのテキスト説明:OFFREAD_ONLYREAD_WRITEREAD_CAPTURE_SECONDARY |
actual_state |
smallint | クエリ ストアの操作モードを示します。 ユーザーが必要とする必要な状態の一覧に加えて、実際の状態をエラー状態にすることができます。0 = OFF1 = READ_ONLY2 = READ_WRITE3 = ERROR4 = READ_CAPTURE_SECONDARY |
actual_state_desc |
nvarchar(60) | クエリ ストアの実際の操作モードのテキスト説明。OFFREAD_ONLYREAD_WRITEERRORREAD_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_descがREAD_WRITEされ、actual_state_descがREAD_ONLYされると、readonly_reasonはビット マップを返して、クエリ ストアが読み取り専用モードになっている理由を示します。1 - データベースが読み取り専用モードです2 - データベースがシングル ユーザー モードである4 - データベースが緊急モードです8 - データベースはセカンダリ レプリカです (可用性グループと Azure SQL Database geo レプリケーションに適用されます)。 この値は、 readable セカンダリ レプリカでのみ効果的に確認できます65536- クエリ ストアが、max_storage_size_mb オプションによって設定されたサイズ制限に達しました。
このオプションの詳細については、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 | 統計の集計間隔 (分)。 任意の値は使用できません。
1、5、10、15、30、60、1440 分のいずれかの値を使用します。 既定値は 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 の既定値)NONECUSTOM |
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に達すると停止します。 |
size_based_cleanup_mode_desc |
nvarchar(60) | クエリ ストアの実際のサイズベースのクリーンアップ モードのテキスト説明:OFFAUTO (既定) |
wait_stats_capture_mode |
smallint | 待機統計のキャプチャクエリ ストア実行するかどうかを制御します。0 = OFF1 = ON適用対象: SQL Server 2017 (14.x) 以降のバージョン。 |
wait_stats_capture_mode_desc |
nvarchar(60) | 実際の待機統計キャプチャ モードのテキスト説明:OFFON (既定)適用対象: SQL Server 2017 (14.x) 以降のバージョン。 |
actual_state_additional_info |
nvarchar(4000) | 現在使用されていません。 |
Permissions
VIEW DATABASE PERFORMANCE STATEのアクセス許可、またはVIEW DATABASE STATEなどのより大きなアクセス許可が必要です。
SQL Server 2016 (13.x) から SQL Server 2019 (15.x) まででは、 VIEW DATABASE STATE アクセス許可が必要です。 SQL Server 2022 (16.x) 以降のバージョンでは、データベースに対する VIEW DATABASE PERFORMANCE STATE 権限、または VIEW DATABASE STATEなどのより大きなアクセス許可が必要です。
Remarks
actual_state_descのREAD_CAPTURE_SECONDARY値は、セカンダリ レプリカのクエリ ストアが有効になっている場合の予期される状態です。 詳細については、「セカンダリ レプリカ のクエリ ストア」を参照してください。
関連コンテンツ
- sys.query_context_settings(Transact-SQL)
- sys.query_store_plan(Transact-SQL)
- sys.query_store_query(Transact-SQL)
- sys.query_store_query_text(Transact-SQL)
- sys.query_store_runtime_stats(Transact-SQL)
- sys.query_store_wait_stats(Transact-SQL)
- sys.query_store_runtime_stats_interval(Transact-SQL)
- クエリのストアを使用した、パフォーマンスの監視
- システム カタログ ビュー (Transact-SQL)
- sys.fn_stmt_sql_handle_from_sql_stmt(Transact-SQL)
- クエリ ストアのストアド プロシージャ (Transact-SQL)