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 | 未知 | 未知 |
1 | CPU | SOS_SCHEDULER_YIELD |
2 | 工作线程* | THREADPOOL |
3 | 锁定 | 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 | 并行度 | 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
权限。
后续步骤
通过以下文章详细了解查询存储:
- sys.query_store_replicas (Transact-SQL)
- sys.database_query_store_options (Transact-SQL)
- 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_interval (Transact-SQL)
- 相关视图、函数和过程
- 目录视图 (Transact-SQL)
- 查询存储存储过程 (Transact-SQL)