sys.database_query_store_options (Transact-SQL)
适用于: SQL Server 2016(13.x)及更高版本Azure SQL 数据库Azure SQL 托管实例 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 在某些情况下,实际状态与所需状态不同: - 如果数据库设置为只读模式,或者如果查询存储大小超过其配置的配额,则即使指定读写,查询存储也可能在只读模式下运行。 - 在极端情况下,查询存储可能会由于内部错误而进入错误状态。 在 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 当 is READ_WRITE 和 actual_state_desc is READ_ONLY 时,readonly_reason 返回位映射以指示查询存储处于只读模式的原因。1 - 数据库处于只读模式2 - 数据库处于单用户模式4 - 数据库处于紧急模式8 - 数据库是次要副本(适用于可用性组和Azure SQL 数据库异地复制)。 此值只能在次要副本上 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 | 统计信息聚合间隔(以分钟为单位)。 不允许任意值。 使用以下值之一:1 、、5 、10 15 、30 、、60 和1440 分钟。 默认值为 60 分钟。 |
max_storage_size_mb |
bigint | 查询存储的最大磁盘大小(MB)。 默认值为 100 MB,最高为 SQL Server 2017(14.x),SQL Server 2019(15.x)及更高版本中为 1 GB。 对于SQL 数据库高级版,默认值为 1 GB,对于 SQL 数据库 基本版,默认值为 10 MB。 使用 ALTER DATABASE <database> SET QUERY_STORE (MAX_STORAGE_SIZE_MB = <size>) 语句进行更改。 |
stale_query_threshold_days |
bigint | 查询信息保存在查询存储中的天数。 默认值是 30 。 0 设置为禁用保留策略。对于 SQL 数据库 基本版,默认值为 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 数据库的默认配置值。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 数据库)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 - 当磁盘上的大小达到 90% max_storage_size_mb 时,将自动激活基于大小的清理。 这是默认的配置值。基于大小的清除首先会删除成本最低和最旧的查询。 当达到大约 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
预期状态。 有关详细信息,请参阅次要副本的查询存储。
相关内容
- 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)