sys.query_store_wait_stats (Transact-SQL)

适用于: SQL Server 2017 (14.x) 及更高版本 Azure SQL 数据库

包含有关查询的等待信息。

列名称 数据类型 说明
wait_stats_id bigint 表示 plan_id、runtime_stats_interval_id、execution_type 和 wait_category 的等待统计信息的行的标识符。 它仅在过去的运行时统计间隔中是唯一的。 对于当前活动间隔,可能有多个行表示 plan_id 引用的计划的等待统计信息,执行类型由 execution_type 表示,等待类别由 wait_category 表示。 通常有一行表示刷新到磁盘的等待统计信息,而其他行表示内存中状态。 因此,要获取每个间隔的实际状态,需要聚合指标,按 plan_id、runtime_stats_interval_id、execution_type 和 wait_category 进行分组。
plan_id bigint 外键。 联接到 sys.query_store_plan (Transact-SQL)
runtime_stats_interval_id bigint 外键。 联接到 sys.query_store_runtime_stats_interval (Transact-SQL)
wait_category tinyint 使用下表对等待类型进行分类,然后聚合这些等待类别的等待时间。 不同的等待类别需要不同的后续分析才能解决此问题,但相同类别的等待类型可引起相似的故障排除体验,并假定除等待之外的受影响的查询是用于成功完成大部分此类调查所缺少的部分。
wait_category_desc nvarchar(128) 有关等待类别字段的文本说明,请查看下表。
execution_type tinyint 确定查询执行的类型:

0 - 常规执行(已成功完成)

3 - 客户端发起的执行中止

4 - 由异常引起的执行中止
execution_type_desc nvarchar(128) 执行类型字段的文本说明:

0 - 常规

3 - 已中止

4 - 异常
total_query_wait_time_ms bigint 聚合间隔和等待类别内查询计划的总 CPU wait 时间(以毫秒为单位报告)。
avg_query_wait_time_ms float 聚合间隔和等待类别内每个执行的查询计划的平均等待持续时间(以毫秒为单位报告)。
last_query_wait_time_ms bigint 聚合间隔和等待类别内查询计划的上次等待持续时间(以毫秒为单位报告)。
min_query_wait_time_ms bigint 聚合间隔和等待类别内查询计划的最短 CPU wait 时间(以毫秒为单位报告)。
max_query_wait_time_ms bigint 聚合间隔和等待类别内查询计划的最长 CPU wait 时间(以毫秒为单位报告)。
stdev_query_wait_time_ms float 聚合间隔和等待类别内查询计划的 Query wait 持续时间标准偏差(以毫秒为单位报告)。
replica_group_id bigint 标识此副本的副本集编号。 用于sys.query_store_replicas的外键。

适用于:SQL Server(SQL Server 2022 (16.x) 及更高版本)

等待类别映射表

“%”用作通配符

整数值 等待类别 类别中包含的等待类型
0 Unknown 未知
1 CPU SOS_SCHEDULER_YIELD
2 工作线程* THREADPOOL
3 Lock LCK_M_%
4 闩锁 LATCH_%
5 缓冲区闩锁 PAGELATCH_%
6 缓冲区 IO PAGEIOLATCH_%
7 编译* RESOURCE_SEMAPHORE_QUERY_COMPILE
8 SQL CLR CLR%、SQLCLR%
9 镜像 DBMIRROR%
10 事务 XACT%、DTC%、TRAN_MARKLATCH_%、MSQL_XACT_%、TRANSACTION_MUTEX
11 Idle SLEEP_%、LAZYWRITER_SLEEP、SQLTRACE_BUFFER_FLUSH、SQLTRACE_INCREMENTAL_FLUSH_SLEEP、SQLTRACE_WAIT_ENTRIES、FT_IFTS_SCHEDULER_IDLE_WAIT、XE_DISPATCHER_WAIT、REQUEST_FOR_DEADLOCK_SEARCH、LOGMGR_QUEUE、ONDEMAND_TASK_QUEUE、CHECKPOINT_QUEUE、XE_TIMER_EVENT
12 抢先 PREEMPTIVE_%
13 Service Broker BROKER_%(但不是 BROKER_RECEIVE_WAITFOR)
14 事务日志 IO LOGMGR、LOGBUFFER、LOGMGR_RESERVE_APPEND、LOGMGR_FLUSH、LOGMGR_PMM_LOG、CHKPT、WRITELOG
15 网络 IO ASYNC_NETWORK_IO、NET_WAITFOR_PACKET、PROXY_NETWORK_IO、EXTERNAL_SCRIPT_NETWORK_IOF
16 Parallelism CXCONSUMER、CXPACKET、CXSYNC_CONSUMER、CXSYNC_PORT、EXCHANGE、HT%、BMP%、BP%
17 内存 RESOURCE_SEMAPHORE、CMEMTHREAD、CMEMPARTITIONED、EE_PMOLOCK、MEMORY_ALLOCATION_EXT、RESERVED_MEMORY_ALLOCATION_EXT、MEMORY_GRANT_UPDATE
18 用户等待 WAITFOR、WAIT_FOR_RESULTS、BROKER_RECEIVE_WAITFOR
19 跟踪 TRACEWRITE、SQLTRACE_LOCK、SQLTRACE_FILE_BUFFER、SQLTRACE_FILE_WRITE_IO_COMPLETION、SQLTRACE_FILE_READ_IO_COMPLETION、SQLTRACE_PENDING_BUFFER_WRITERS、SQLTRACE_SHUTDOWN、QUERY_TRACEOUT、TRACE_EVTNOTIFF
20 全文搜索 FT_RESTART_CRAWL、FULLTEXT GATHERER、MSSEARCH、FT_METADATA_MUTEX、FT_IFTSHC_MUTEX、FT_IFTSISM_MUTEX、FT_IFTS_RWLOCK、FT_COMPROWSET_RWLOCK、FT_MASTER_MERGE、FT_PROPERTYLIST_CACHE、FT_MASTER_MERGE_COORDINATOR、PWAIT_RESOURCE_SEMAPHORE_FT_PARALLEL_QUERY_SYNC
21 其他磁盘 IO ASYNC_IO_COMPLETION、IO_COMPLETION、BACKUPIO、WRITE_COMPLETION、IO_QUEUE_LIMIT、IO_RETRY
22 复制 SE_REPL_%、REPL_%、HADR_%(但不是 HADR_THROTTLE_LOG_RATE_GOVERNOR)、PWAIT_HADR_%、REPLICA_WRITES、FCB_REPLICA_WRITE、FCB_REPLICA_READ、PWAIT_HADRSIM
23 日志速率调控器 LOG_RATE_GOVERNOR、POOL_LOG_RATE_GOVERNOR、HADR_THROTTLE_LOG_RATE_GOVERNOR、INSTANCE_LOG_RATE_GOVERNOR、RBIO_RG_%

* 查询存储仅在查询执行期间跟踪等待统计信息,而不在查询编译期间跟踪。 这限制了查询存储跟踪编译等待统计信息的能力。

权限

需要 VIEW DATABASE STATE 权限。

后续步骤

通过以下文章详细了解查询存储: