sys.dm_db_wait_stats

适用于:Azure SQL 数据库Azure SQL 托管实例Microsoft Fabric中的SQL数据库

返回在操作期间执行的线程所遇到的所有等待的相关信息。 可以使用此聚合视图来诊断性能问题,以及特定查询和批处理。

查询执行期间的特定等待时间类型可能指示查询中的瓶颈或停止点。 同样,高等待时间或等待计数服务器范围可能指示服务器实例内交互查询交互中的瓶颈或热点。 例如,锁定等待指示查询的数据争用;页 IO 闩锁等待指示 IO 响应时间缓慢;页面闩锁更新等待指示文件布局不正确。

列名称 数据类型 说明
wait_type nvarchar(60) 等待类型的名称。 有关详细信息,请参阅 “等待类型”。
waiting_tasks_count bigint 此等待类型的等待数。 此计数器在每个等待开始时递增。
wait_time_ms bigint 此等待类型的总等待时间(以毫秒为单位)。 这次包含 signal_wait_time_ms
max_wait_time_ms bigint 此等待类型的最大等待时间。
signal_wait_time_ms bigint 等待线程发出信号的时间与开始运行的时间之间的差异。

注解

  • 此动态管理视图只显示当前数据库的数据。

  • 此动态管理视图显示完成等待的时间。 它不显示当前等待。

  • 只要数据库转入或进入离线状态,计数器就会重置为零。

  • 如果出现下列任一情况,则不认为 SQL Server 工作线程处于等待状态:

    • 资源变为可用。

    • 队列是无空的。

    • 外部进程完成。

注释

故障转移事件后不会保留这些统计信息,自上次重置统计信息或数据库引擎启动以来,所有数据都是累积的。 使用 sqlserver_start_time 中的 列查找上次数据库引擎启动时间。

Permissions

需要 VIEWDATABASE 数据库的STATE权限。

等待类型

资源等待

当辅助角色请求访问不可用的资源时,资源会等待,因为该资源正在由其他辅助角色使用,或者尚不可用。 资源等待的示例包括:锁、闩锁、网络和磁盘 I/O 等待。 锁定和闩锁等待是同步对象的等待。

队列等待

当工作线程空闲,等待分配工作时便会发生队列等待。 队列等待通常是系统后台任务(如死锁监视器和已删除的记录清理任务)看到的。 这些任务等待工作请求放入工作队列。 即使队列中没有新的数据包,队列等待也可以定期变为活动状态。

外部等待

当 SQL Server 辅助角色等待外部事件(如扩展存储过程调用或链接服务器查询)完成时,会发生外部等待。 诊断阻塞问题时,请记住,外部等待并不总是意味着辅助角色处于空闲状态,因为辅助角色可能主动运行某些外部代码。

等待

尽管线程不再处于等待状态,但是它不必立即开始运行。 这是因为,此类线程首先放在可运行工作线程的队列中,并且必须等待量子在计划程序上运行。

在 SQL Server 中,等待时间计数器是 大值 ,因此不像早期版本的 SQL Server 中的等效计数器那样容易进行计数器滚动更新。

下表列出了任务遇到的等待类型。

等待类型 说明
ABR 标识为仅供参考。 不支持。 不保证以后的兼容性。
ASSEMBLY_LOAD 在对程序集加载的独占访问期间发生。
ASYNC_DISKPOOL_LOCK 当尝试同步并行的线程(执行创建或初始化文件等任务)时出现。
ASYNC_IO_COMPLETION 当某任务正在等待 I/O 完成时出现。
ASYNC_NETWORK_IO 当任务被阻止在网络之后时出现在网络写入中。 验证客户端是否正在处理来自服务器的数据。
AUDIT_GROUPCACHE_LOCK 当等待控制对某个特殊缓存的访问的锁时出现。 缓存包含有关用于审核每个审核作组的审核的信息。
AUDIT_LOGINCACHE_LOCK 当等待控制对某个特殊缓存的访问的锁时出现。 缓存包含有关用于审核登录审核作组的审核的信息。
AUDIT_ON_DEMAND_TARGET_LOCK 当等待用于确保扩展事件目标相关审核的单一初始化的锁时出现。
AUDIT_XE_SESSION_MGR 当等待用于同步扩展事件会话相关审核的启动和停止的锁时出现。
BACKUP 在备份处理过程中阻止任务时发生。
BACKUP_OPERATOR 当任务正在等待磁带装载时发生。
BACKUPBUFFER 当备份任务正在等待数据或正在等待存储数据的缓冲区时发生。 此类型不常见,只有当任务等待装入磁带时才会出现。
BACKUPIO 当备份任务正在等待数据或正在等待存储数据的缓冲区时发生。 此类型不常见,只有当任务等待装入磁带时才会出现。
BACKUPTHREAD 当任务正在等待备份任务完成时发生。 等待时间可能很长,从几分钟到几个小时。 如果被等待的任务正处于 I/O 进程中,则该类型不指示发生问题。
BAD_PAGE_PROCESS 当后台可疑页面记录器试图避免每五秒运行一次以上时发生。 过多的可疑页面会导致记录器频繁运行。
BROKER_CONNECTION_RECEIVE_TASK 等待访问在连接终结点上接收消息时发生。 已序列化对终结点的访问。
BROKER_ENDPOINT_STATE_MUTEX 当存在访问 Service Broker 连接终结点状态的争用时发生。 对更改状态的访问将序列化。
BROKER_EVENTHANDLER 当任务正在 Service Broker 的主事件处理程序中等待时发生。 这应该非常短暂地发生。
BROKER_INIT 在每个活动数据库中初始化 Service Broker 时发生。 这种情况不常发生。
BROKER_MASTERSTART 当任务正在等待 Service Broker 的主事件处理程序启动时发生。 这应该非常短暂地发生。
BROKER_RECEIVE_WAITFOR 当等待等待时发生 RECEIVE 。 如果没有准备接收的消息,则通常出现该状态。
BROKER_REGISTERALLENDPOINTS 在 Service Broker 连接终结点的初始化过程中发生。 这应该非常短暂地发生。
BROKER_SERVICE 当与目标服务关联的 Service Broker 目标列表更新或重新设置优先级时发生。
BROKER_SHUTDOWN 当 Service Broker 计划关闭时发生。 这应该非常短暂地发生,如果有的话。
BROKER_TASK_STOP 当 Service Broker 队列任务处理程序尝试关闭该任务时发生。 状态检查已序列化,并且必须事先处于运行状态。
BROKER_TO_FLUSH 当 Service Broker 延迟刷新器将内存中传输对象刷新到工作表时发生。
BROKER_TRANSMITTER 当 Service Broker 发送器正在等待工作时发生。
BUILTIN_HASHKEY_MUTEX 在启动实例后可能发生,而内部数据结构正在初始化。 数据结构初始化之后将不会再次出现。
CHECK_PRINT_RECORD 标识为仅供参考。 不支持。 不保证以后的兼容性。
CHECKPOINT_QUEUE 当检查点任务正在等待下一个检查点请求时发生。
CHKPT 在服务器启动时发生,告知检查点线程可以启动。
CLEAR_DB 在更改数据库状态的作期间发生,例如打开或关闭数据库。
CLR_AUTO_EVENT 当任务当前正在执行公共语言运行时 (CLR) 执行并正在等待特定自动执行启动时发生。 通常会出现长时间等待,这并不意味着出现问题。
CLR_CRST 当某任务当前正在执行 CLR 执行并且正在等待输入当前由另一项任务正在使用的任务的关键部分时出现。
CLR_JOIN 当某任务当前正在执行 CLR 执行并且正在等待另一项任务结束时出现。 当两任务之间具有联接时出现该等待状态。
CLR_MANUAL_EVENT 当某任务当前正在执行 CLR 执行并且正在等待特定手动事件启动时出现。
CLR_MEMORY_SPY 在等待锁定获取时发生,用于记录来自 CLR 的所有虚拟内存分配的数据结构。 如果存在并行访问,该数据结构将被锁定以维护其完整性。
CLR_MONITOR 当某任务当前正在执行 CLR 执行并且正在等待获取用于监视器的锁时出现。
CLR_RWLOCK_READER 当某任务当前正在执行 CLR 执行并且正在等待读取器锁时出现。
CLR_RWLOCK_WRITER 当某任务当前正在执行 CLR 执行并且正在等待编写器锁时出现。
CLR_SEMAPHORE 当某任务当前正在执行 CLR 执行并且正在等待信号量时出现。
CLR_TASK_START 等待 CLR 任务完成启动时发生。
CLRHOST_STATE_ACCESS 当等待获取对 CLR 宿主数据结构的独占访问时出现。 此等待类型在设置或拆毁 CLR 运行时时发生。
CMEMTHREAD 当任务正在等待线程安全内存对象时发生。 当多项任务尝试分配来自同一个内存对象的内存而导致出现争用时,便可能延长等待时间。
CXPACKET 当尝试同步查询处理器交换迭代器时出现。 如果此等待类型的争用成为问题,则可以考虑降低并行度。
CXROWSET_SYNC 在并行范围扫描期间发生。
DAC_INIT 在初始化专用管理员连接时发生。
DBMIRROR_DBM_EVENT 标识为仅供参考。 不支持。 不保证以后的兼容性。
DBMIRROR_DBM_MUTEX 标识为仅供参考。 不支持。 不保证以后的兼容性。
DBMIRROR_EVENTS_QUEUE 数据库镜像等待事件处理时发生。
DBMIRROR_SEND 当任务正在等待网络层的通信积压工作以清除以发送消息时发生。 指示通信层开始过载并影响数据库镜像数据吞吐量。
DBMIRROR_WORKER_QUEUE 指示数据库镜像辅助角色任务正在等待更多工作。
DBMIRRORING_CMD 当任务正在等待将日志记录刷新到磁盘时发生。 此等待状态预计将长时间保留。
DEADLOCK_ENUM_MUTEX 死锁监视器并 sys.dm_os_waiting_tasks 尝试确保 SQL Server 未同时运行多个死锁搜索时发生。
DEADLOCK_TASK_SEARCH 此资源的等待时间较大表示服务器正在 sys.dm_os_waiting_tasks上执行查询,并且这些查询阻止死锁监视器运行死锁搜索。 此等待类型仅供死锁监视器使用。 基于使用DEADLOCK_ENUM_MUTEX的 sys.dm_os_waiting_tasks 查询。
DEBUG 在内部同步 Transact-SQL 和 CLR 调试期间发生。
DISABLE_VERSIONING 当 SQL Server 轮询版本事务管理器以查看最早活动事务的时间戳是否晚于状态开始更改时的时间戳时发生。 如果是这种情况,则运行 ALTER DATABASE 语句之前启动的所有快照事务都已完成。 当 SQL Server 使用 ALTER DATABASE 语句禁用版本控制时,将使用此等待状态。
DISKIO_SUSPEND 当任务正在等待在外部备份处于活动状态时访问文件时发生。 对于每个等待的用户进程,都会报告这一点。 每个用户进程大于 5 的计数可以指示外部备份花费了太多时间才能完成。
DISPATCHER_QUEUE_SEMAPHORE 当调度程序池中的线程正在等待处理更多工作时发生。 当调度程序处于空闲状态时,此等待类型的等待时间预计将增加。
DLL_LOADING_MUTEX 等待 XML 分析程序 DLL 加载时发生一次。
DROPTEMP 在尝试删除临时对象(如果上一次尝试失败)之间发生。 等待持续时间随着每次失败的下降尝试而呈指数级增长。
DTC 当任务正在等待用于管理状态转换的事件时发生。 此状态控制在 SQL Server 收到 MS DTC 服务不可用的通知后,Microsoft分布式事务处理协调器 (MS DTC) 事务的恢复何时发生。

此状态还描述了在 SQL Server 启动 MS DTC 事务提交时正在等待的任务,SQL Server 正在等待 MS DTC 提交完成。
DTC_ABORT_REQUEST 当会话等待获取 MS DTC 事务的所有权时,在 MS DTC 工作线程会话中发生。 MS DTC 拥有事务后,会话可以回滚事务。 通常,会话会等待使用事务的另一个会话。
DTC_RESOLVE 当恢复任务正在等待跨数据库事务中的 master 数据库时发生,以便任务可以查询事务的结果。
DTC_STATE 当任务正在等待保护对内部 MS DTC 全局状态对象的更改的事件时发生。 此状态应保留非常短的时间。
DTC_TMDOWN_REQUEST 当 SQL Server 收到 MS DTC 服务不可用的通知时,在 MS DTC 辅助角色会话中发生。 首先,辅助角色等待 MS DTC 恢复进程启动。 然后,辅助角色等待获取工作线程正在处理的分布式事务的结果。 这可以继续,直到重新建立与 MS DTC 服务的连接。
DTC_WAITFOR_OUTCOME 当恢复任务等待 MS DTC 处于活动状态以启用已准备事务的解析时发生。
DUMP_LOG_COORDINATOR 当主任务正在等待子任务生成数据时发生。 该状态通常不会出现。 长时间等待表示意外的阻塞。 应调查子任务。
DUMPTRIGGER 标识为仅供参考。 不支持。 不保证以后的兼容性。
EC 标识为仅供参考。 不支持。 不保证以后的兼容性。
EE_PMOLOCK 在语句执行期间同步某些类型的内存分配期间发生。
EE_SPECPROC_MAP_INIT 在创建内部过程哈希表的过程中发生。 此等待只能在 SQL Server 实例启动后对哈希表的初始访问期间发生。
ENABLE_VERSIONING 当 SQL Server 等待此数据库中的所有更新事务完成之前,才声明数据库准备转换为快照隔离允许的状态时发生。 当 SQL Server 使用 ALTER DATABASE 语句启用快照隔离时,将使用此状态。
ERROR_REPORTING_MANAGER 在同步多个并发错误日志初始化期间发生。
交换 在并行查询期间在查询处理器交换迭代器同步期间发生。
EXECSYNC 在与交换迭代器无关的区域中同步查询处理器期间发生并行查询。 此类区域的示例包括位图、大型二进制对象(LOB)和后台处理程序迭代器。 BLOB 可能会经常使用此等待状态。
EXECUTION_PIPE_EVENT_INTERNAL 在通过连接上下文提交的批处理执行的生成者和使用者部分之间的同步期间发生。
FAILPOINT 标识为仅供参考。 不支持。 不保证以后的兼容性。
FCB_REPLICA_READ 当同步快照(或 DBCC 创建的临时快照)稀疏文件的读取时出现。
FCB_REPLICA_WRITE 当同步快照(或 DBCC 创建的临时快照)稀疏文件的页推送或页请求时出现。
FS_FC_RWLOCK 当 FILESTREAM 垃圾收集器等待执行下列操作之一时出现:

禁用垃圾收集(由备份和还原使用)。

执行 FILESTREAM 垃圾收集器的一个周期。
FS_GARBAGE_COLLECTOR_SHUTDOWN 当 FILESTREAM 垃圾回收器正在等待完成清理任务时发生。
FS_HEADER_RWLOCK 当等待获取对 FILESTREAM 数据容器的 FILESTREAM 标头的访问权限以读取或更新 FILESTREAM 头文件 (Filestream.hdr) 中的内容时发生。
FS_LOGTRUNC_RWLOCK 当等待获取对 FILESTREAM 日志截断的访问以执行下列操作之一时出现:

临时禁用 FILESTREAM 日志 (FSLOG) 截断(由备份和还原使用)。

执行 FSLOG 截断的一个周期。
FSA_FORCE_OWN_XACT 当 FILESTREAM 文件 I/O作需要绑定到关联的事务时发生,但该事务当前由另一个会话拥有。
FSAGENT 当 FILESTREAM 文件 I/O作正在等待另一个文件 I/O作使用的 FILESTREAM 代理资源时发生。
FSTR_CONFIG_MUTEX 当等待另一个 FILESTREAM 功能重新配置完成时出现。
FSTR_CONFIG_RWLOCK 当等待序列化对 FILESTREAM 配置参数的访问时出现。
FT_METADATA_MUTEX 仅供参考。 不支持。 不保证以后的兼容性。
FT_RESTART_CRAWL 当全文爬网需要从最后一个已知良好点重启才能从暂时性故障中恢复时发生。 等待允许当前处理该填充的工作器任务完成或退出当前步骤。
全文收集器 在全文作同步期间发生。
GUARDIAN 标识为仅供参考。 不支持。 不保证以后的兼容性。
HTTP_ENUMERATION 在启动时发生以枚举要启动 HTTP 的 HTTP 终结点。
HTTP_START 当连接等待 HTTP 完成初始化时发生。
IMPPROV_IOWAIT 当 SQL Server 等待大容量加载 I/O 完成时发生。
INTERNAL_TESTING 标识为仅供参考。 不支持。 不保证以后的兼容性。
IO_AUDIT_MUTEX 在跟踪事件缓冲区同步期间发生。
IO_COMPLETION 在等待 I/O 操作完成时出现。 此等待类型通常表示非数据页 I/O。 数据页 I/O 完成等待显示为 PAGEIOLATCH_* waits。
IO_QUEUE_LIMIT 当Azure SQL 数据库的异步 IO 队列挂起过多的 IO 时发生。 在挂起的 IO 数降低到阈值以下之前,此等待类型上尝试发出另一个 IO 的任务会被阻止。 该阈值与分配给数据库的 DTU 成正比。
IO_RETRY 当 I/O作(如读取或写入磁盘)由于资源不足而失败,然后重试时发生。
IOAFF_RANGE_QUEUE 标识为仅供参考。 不支持。 不保证以后的兼容性。
KSOURCE_WAKEUP 服务控制任务在等待来自服务控制管理器的请求时使用。 可能会出现长时间等待,这并不指示出现问题。
KTM_ENLISTMENT 标识为仅供参考。 不支持。 不保证以后的兼容性。
KTM_RECOVERY_MANAGER 标识为仅供参考。 不支持。 不保证以后的兼容性。
KTM_RECOVERY_RESOLUTION 标识为仅供参考。 不支持。 不保证以后的兼容性。
LATCH_DT 等待 DT(销毁)闩锁时发生。 它不包括缓冲区闩锁或事务标记闩锁。 LATCH_* 等待列表可用 sys.dm_os_latch_stats。 请注意, sys.dm_os_latch_stats 组LATCH_NL、LATCH_SH、LATCH_UP、LATCH_EX和LATCH_DT一起等待。
LATCH_EX 等待 EX(独占)闩锁时发生。 它不包括缓冲区闩锁或事务标记闩锁。 LATCH_* 等待列表可用 sys.dm_os_latch_stats。 请注意, sys.dm_os_latch_stats 组LATCH_NL、LATCH_SH、LATCH_UP、LATCH_EX和LATCH_DT一起等待。
LATCH_KP 在等待 KP(保留)闩锁时发生。 它不包括缓冲区闩锁或事务标记闩锁。 LATCH_* 等待列表可用 sys.dm_os_latch_stats。 请注意, sys.dm_os_latch_stats 组LATCH_NL、LATCH_SH、LATCH_UP、LATCH_EX和LATCH_DT一起等待。
LATCH_NL 标识为仅供参考。 不支持。 不保证以后的兼容性。
LATCH_SH 等待 SH(共享)闩锁时发生。 它不包括缓冲区闩锁或事务标记闩锁。 LATCH_* 等待列表可用 sys.dm_os_latch_stats。 请注意, sys.dm_os_latch_stats 组LATCH_NL、LATCH_SH、LATCH_UP、LATCH_EX和LATCH_DT一起等待。
LATCH_UP 等待 UP(更新)闩锁时发生。 它不包括缓冲区闩锁或事务标记闩锁。 LATCH_* 等待列表可用 sys.dm_os_latch_stats。 请注意, sys.dm_os_latch_stats 组LATCH_NL、LATCH_SH、LATCH_UP、LATCH_EX和LATCH_DT一起等待。
LAZYWRITER_SLEEP 当惰性编写器被挂起时出现。 这是由正在等待的后台任务花费的时间的度量值。 在查找用户阻隔点所时不要考虑该状态。
LCK_M_BU 当任务正在等待获取批量更新 (BU) 锁时发生。 有关锁兼容性矩阵,请参阅sys.dm_tran_locks(Transact-SQL)。
LCK_M_IS 当任务正在等待获取意向共享 (IS) 锁时发生。 有关锁兼容性矩阵,请参阅sys.dm_tran_locks(Transact-SQL)。
LCK_M_IU 当任务正在等待获取意向更新 (IU) 锁时发生。 有关锁兼容性矩阵,请参阅sys.dm_tran_locks(Transact-SQL)。
LCK_M_IX 当任务正在等待获取意向排他锁 (IX) 锁时发生。 有关锁兼容性矩阵,请参阅sys.dm_tran_locks(Transact-SQL)。
LCK_M_RIn_NL 当某任务正在等待获取当前键值上的 NULL 锁以及当前键和上一个键之间的插入范围锁时出现。 键上的 NULL 锁是指立即释放的锁。 有关锁兼容性矩阵,请参阅sys.dm_tran_locks(Transact-SQL)。
LCK_M_RIn_S 当任务正在等待获取当前键值的共享锁以及当前键和上一个键之间的插入范围锁时发生。 有关锁兼容性矩阵,请参阅sys.dm_tran_locks(Transact-SQL)。
LCK_M_RIn_U 任务正在等待获取当前键值的更新锁,以及当前键和上一个键之间的“插入范围”锁。 有关锁兼容性矩阵,请参阅sys.dm_tran_locks(Transact-SQL)。
LCK_M_RIn_X 当任务正在等待获取当前键值的排他锁,以及当前键和上一个键之间的插入范围锁时发生。 有关锁兼容性矩阵,请参阅sys.dm_tran_locks(Transact-SQL)。
LCK_M_RS_S 当任务正在等待获取当前键值的共享锁和当前键和上一个键之间的共享范围锁时发生。 有关锁兼容性矩阵,请参阅sys.dm_tran_locks(Transact-SQL)。
LCK_M_RS_U 当任务正在等待获取当前键值的更新锁以及当前键和上一个键之间的更新范围锁时发生。 有关锁兼容性矩阵,请参阅sys.dm_tran_locks(Transact-SQL)。
LCK_M_RX_S 当任务正在等待获取当前键值的共享锁和当前键和上一个键之间的独占范围锁时发生。 有关锁兼容性矩阵,请参阅sys.dm_tran_locks(Transact-SQL)。
LCK_M_RX_U 当任务正在等待获取当前键值的更新锁,以及当前键和上一个键之间的排他范围锁时发生。 有关锁兼容性矩阵,请参阅sys.dm_tran_locks(Transact-SQL)。
LCK_M_RX_X 当任务正在等待获取当前键值的排他锁和当前键和上一个键之间的排他范围锁时发生。 有关锁兼容性矩阵,请参阅sys.dm_tran_locks(Transact-SQL)。
LCK_M_S 当任务正在等待获取共享锁时发生。 有关锁兼容性矩阵,请参阅sys.dm_tran_locks(Transact-SQL)。
LCK_M_SCH_M 当任务正在等待获取架构修改锁时发生。 有关锁兼容性矩阵,请参阅sys.dm_tran_locks(Transact-SQL)。
LCK_M_SCH_S 当任务正在等待获取架构共享锁时发生。 有关锁兼容性矩阵,请参阅sys.dm_tran_locks(Transact-SQL)。
LCK_M_SIU 当任务正在等待获取共享意向更新锁时发生。 有关锁兼容性矩阵,请参阅sys.dm_tran_locks(Transact-SQL)。
LCK_M_SIX 当任务正在等待获取共享意向排他锁时发生。 有关锁兼容性矩阵,请参阅sys.dm_tran_locks(Transact-SQL)。
LCK_M_U 当任务正在等待获取更新锁时发生。 有关锁兼容性矩阵,请参阅sys.dm_tran_locks(Transact-SQL)。
LCK_M_UIX 当任务正在等待获取具有意向排他锁的更新时发生。 有关锁兼容性矩阵,请参阅sys.dm_tran_locks(Transact-SQL)。
LCK_M_X 当任务正在等待获取独占锁时发生。 有关锁兼容性矩阵,请参阅sys.dm_tran_locks(Transact-SQL)。
LOG_RATE_GOVERNOR 在 DB 正在等待写入日志的配额时发生。
LOGBUFFER 当任务正在等待日志缓冲区中的空间来存储日志记录时发生。 一致高值可能表示日志设备无法跟上服务器生成的日志量。
LOGGENERATION 标识为仅供参考。 不支持。 不保证以后的兼容性。
LOGMGR 当任务正在等待任何未完成的日志 I/O 在关闭数据库时关闭日志之前完成时发生。
LOGMGR_FLUSH 标识为仅供参考。 不支持。 不保证以后的兼容性。
LOGMGR_QUEUE 在日志编写器任务等待工作请求时发生。
LOGMGR_RESERVE_APPEND 当任务等待查看日志截断是否释放日志空间以使任务能够写入新日志记录时发生。 请考虑为受影响的数据库增加日志文件的大小以减少该等待时间。
LOWFAIL_MEMMGR_QUEUE 等待内存可供使用时发生。
MSQL_DQ 当任务正在等待分布式查询作完成时发生。 这用于检测潜在的多个活动结果集(MARS)应用程序死锁。 分布式查询调用完成时,等待结束。
MSQL_XACT_MGR_MUTEX 当任务等待获取会话事务管理器的所有权来执行会话级别事务作时发生。
MSQL_XACT_MUTEX 在事务使用同步期间发生。 请求必须先获取互斥体,然后才能使用该事务。
MSQL_XP 当任务正在等待扩展存储过程结束时发生。 SQL Server 使用此等待状态来检测潜在的 MARS 应用程序死锁。 当扩展存储过程调用结束时,等待将停止。
MSSEARCH 在 Full-Text 搜索调用期间发生。 当全文作完成时,此等待将结束。 它不指示争用,而指示全文操作的持续时间。
NET_WAITFOR_PACKET 当连接在网络读取期间等待网络数据包时发生。
OLEDB 当 SQL Server 调用 SQL Server Native Client OLE DB 访问接口时发生。 该等待类型不用于同步。 而是指示对 OLE DB 访问接口的调用持续时间。
ONDEMAND_TASK_QUEUE 在后台任务等待高优先级系统任务请求时发生。 长时间的等待指示一直没有要处理的高优先级请求,不应引起关注。
PAGEIOLATCH_DT 当任务在闩锁上等待 I/O 请求中的缓冲区时发生。 闩锁请求处于 Destroy 模式。 长时间等待可能指示磁盘子系统出现问题。
PAGEIOLATCH_EX 当任务在闩锁上等待 I/O 请求中的缓冲区时发生。 闩锁请求处于“独占”模式。 长时间等待可能指示磁盘子系统出现问题。
PAGEIOLATCH_KP 当任务在闩锁上等待 I/O 请求中的缓冲区时发生。 闩锁请求处于“保留”模式。 长时间等待可能指示磁盘子系统出现问题。
PAGEIOLATCH_NL 标识为仅供参考。 不支持。 不保证以后的兼容性。
PAGEIOLATCH_SH 当任务在闩锁上等待 I/O 请求中的缓冲区时发生。 闩锁请求处于“共享”模式。 长时间等待可能指示磁盘子系统出现问题。
PAGEIOLATCH_UP 当任务在闩锁上等待 I/O 请求中的缓冲区时发生。 闩锁请求处于更新模式。 长时间等待可能指示磁盘子系统出现问题。
PAGELATCH_DT 在任务等待不处于 I/O 请求中的缓冲区闩锁时发生。 闩锁请求处于 Destroy 模式。
PAGELATCH_EX 在任务等待不处于 I/O 请求中的缓冲区闩锁时发生。 闩锁请求处于“独占”模式。
PAGELATCH_KP 在任务等待不处于 I/O 请求中的缓冲区闩锁时发生。 闩锁请求处于“保留”模式。
PAGELATCH_NL 标识为仅供参考。 不支持。 不保证以后的兼容性。
PAGELATCH_SH 在任务等待不处于 I/O 请求中的缓冲区闩锁时发生。 闩锁请求处于“共享”模式。
PAGELATCH_UP 在任务等待不处于 I/O 请求中的缓冲区闩锁时发生。 闩锁请求处于更新模式。
PARALLEL_BACKUP_QUEUE 当序列化由 RESTORERESTORE HEADERONLY、 RESTORERESTORE FILELISTONLY、 或 RESTORERESTORE LABELONLY的输出时。
PREEMPTIVE_ABR 标识为仅供参考。 不支持。 不保证以后的兼容性。
PREEMPTIVE_AUDIT_ACCESS_EVENTLOG 当 SQL Server作系统 (SQLOS) 计划程序切换到抢占模式以将审核事件写入 Windows 事件日志时发生。
PREEMPTIVE_AUDIT_ACCESS_SECLOG 当 SQLOS 计划程序切换到抢占模式以将审核事件写入 Windows 安全日志时发生。
PREEMPTIVE_CLOSEBACKUPMEDIA 当 SQLOS 计划程序切换到抢占模式以关闭备份介质时发生。
PREEMPTIVE_CLOSEBACKUPTAPE 当 SQLOS 计划程序切换到抢占模式以关闭磁带备份设备时发生。
PREEMPTIVE_CLOSEBACKUPVDIDEVICE 当 SQLOS 计划程序切换到抢先模式以关闭虚拟备份设备时发生。
PREEMPTIVE_CLUSAPI_CLUSTERRESOURCECONTROL 当 SQLOS 计划程序切换到抢占模式以执行 Windows 故障转移群集作时发生。
PREEMPTIVE_COM_COCREATEINSTANCE 当 SQLOS 计划程序切换到抢占模式以创建 COM 对象时发生。
PREEMPTIVE_HADR_LEASE_MECHANISM 用于 CSS 诊断的 AlwaysOn 可用性组租约管理器计划。
PREEMPTIVE_SOSTESTING 标识为仅供参考。 不支持。 不保证以后的兼容性。
PREEMPTIVE_STRESSDRIVER 标识为仅供参考。 不支持。 不保证以后的兼容性。
PREEMPTIVE_TESTING 标识为仅供参考。 不支持。 不保证以后的兼容性。
PREEMPTIVE_XETESTING 标识为仅供参考。 不支持。 不保证以后的兼容性。
PRINT_ROLLBACK_PROGRESS 用于等待用户进程在通过 ALTER DATABASE 终止条款转移的数据库中结束。 有关详细信息,请参阅ALTER DATABASE(Transact-SQL)。
PWAIT_HADR_CHANGE_NOTIFIER_TERMINATION_SYNC 当后台任务正在等待接收(通过轮询)Windows Server 故障转移群集通知的后台任务终止时发生。 仅供内部使用。
PWAIT_HADR_CLUSTER_INTEGRATION 追加、替换和/或删除作正在等待获取 AlwaysOn 内部列表(例如网络、网络地址或可用性组侦听器的列表)上的写入锁。 仅供内部使用。
PWAIT_HADR_OFFLINE_COMPLETED AlwaysOn 删除可用性组操作正在等待目标可用性组在销毁 Windows Server 故障转移群集对象之前脱机。
PWAIT_HADR_ONLINE_COMPLETED AlwaysOn 创建或故障转移可用性组操作正在等待目标可用性组联机。
PWAIT_HADR_POST_ONLINE_COMPLETED AlwaysOn 删除可用性组操作正在等待终止作为上一命令的一部分计划的任何后台任务。 例如,可能有一个后台任务正在将可用性数据库转换为主角色。 DROP AVAILABILITY GROUP DDL 必须等待此后台任务终止,以避免争用条件。
PWAIT_HADR_WORKITEM_COMPLETED 等待异步工作任务完成的线程的内部等待。 这是一个预期的等待,用于 CSS 使用。
PWAIT_MD_LOGIN_STATS 在登录统计信息的元数据中内部同步期间发生。
PWAIT_MD_RELATION_CACHE 在表或索引的元数据中内部同步期间发生。
PWAIT_MD_SERVER_CACHE 在链接服务器上的元数据内部同步期间发生。
PWAIT_MD_UPGRADE_CONFIG 在升级服务器范围配置的内部同步期间发生。
PWAIT_METADATA_LAZYCACHE_RWLOCk 在元数据缓存内部同步期间以及迭代表中的索引或统计信息时发生。
QPJOB_KILL 指示异步统计信息自动更新在开始运行时通过调用 KILL 命令而取消。 终止线程处于挂起状态,等待它开始侦听 KILL 命令。 良好的值小于 1 秒。
QPJOB_WAITFOR_ABORT 指示异步统计信息自动更新在运行时通过调用 KILL 命令而取消。 更新现已完成,但在终止线程消息协调完成之前暂停。 这是一种普通但罕见的状态,应该很短。 良好的值小于 1 秒。
QRY_MEM_GRANT_INFO_MUTEX 当查询执行内存管理尝试控制对静态授予信息列表的访问时发生。 此状态列出有关当前授予和等待内存请求的信息。 此状态是一个简单的访问控制状态。 此状态永远不应该有很长的等待时间。 如果未释放互斥体,则所有占用内存的新查询都将停止响应。
QUERY_ERRHDL_SERVICE_DONE 标识为仅供参考。 不支持。 不保证以后的兼容性。
QUERY_EXECUTION_INDEX_SORT_EVENT_OPEN 在某些情况下,脱机创建索引生成并行运行,以及正在对排序文件进行同步访问的不同工作线程。
QUERY_NOTIFICATION_MGR_MUTEX 在查询通知管理器中垃圾回收队列同步期间发生。
QUERY_NOTIFICATION_SUBSCRIPTION_MUTEX 在查询通知中的事务的状态同步期间发生。
QUERY_NOTIFICATION_TABLE_MGR_MUTEX 在查询通知管理器内部同步期间发生。
QUERY_NOTIFICATION_UNITTEST_MUTEX 标识为仅供参考。 不支持。 不保证以后的兼容性。
QUERY_OPTIMIZER_PRINT_MUTEX 在同步查询优化器诊断输出生产期间发生。 仅当在Microsoft产品支持部门的指导下启用了诊断设置时,才会发生此等待类型。
QUERY_TRACEOUT 标识为仅供参考。 不支持。 不保证以后的兼容性。
QUERY_WAIT_ERRHDL_SERVICE 标识为仅供参考。 不支持。 不保证以后的兼容性。
RECOVER_CHANGEDB 在热备用数据库中的数据库状态同步期间发生。
REPL_CACHE_ACCESS 在复制项目缓存同步期间发生。 在这些等待期间,复制日志读取器会停止,并阻止已发布表上的数据定义语言(DDL)语句。
REPL_SCHEMA_ACCESS 在同步复制架构版本信息期间发生。 当对复制的对象执行 DDL 语句时,以及日志读取器生成或使用基于 DDL 出现的版本控制架构时,此状态存在。
REPLICA_WRITES 当任务等待页写入到数据库快照或 DBCC 副本完成时发生。
REQUEST_DISPENSER_PAUSE 当任务等待所有未完成的 I/O 完成时发生,以便可以冻结文件的 I/O 进行快照备份。
REQUEST_FOR_DEADLOCK_SEARCH 死锁监视器等待启动下一个死锁搜索时发生。 在两次死锁检测之间可能出现该等待,长时间等待此资源并不指示出现问题。
RESMGR_THROTTLED 在有新请求传入并且基于 GROUP_MAX_REQUESTS 设置而中止时出现。
RESOURCE_QUEUE 在同步各种内部资源队列期间发生。
RESOURCE_SEMAPHORE 当由于存在其他并发查询而无法立即批准查询内存请求时出现。 高等待和等待时间可以指示并发查询过多或内存请求量过多。
RESOURCE_SEMAPHORE_MUTEX 当查询等待其请求完成线程预留时发生。 同步查询编译和内存授予请求时也会发生这种情况。
RESOURCE_SEMAPHORE_QUERY_COMPILE 当并发查询编译数达到限制时发生。 高等待和等待时间可能表示编译过多、重新编译或不可访问的计划。
RESOURCE_SEMAPHORE_SMALL_QUERY 当由于存在其他并发查询而无法立即批准较小查询的内存请求时出现。 等待时间不应超过几秒钟,因为如果服务器无法在几秒钟内给予请求的内存,则会将请求传输到主查询内存池中。 高等待可能指示在主内存池被等待查询阻止时并发小型查询过多。
SE_REPL_CATCHUP_THROTTLE 在事务等待其中一个辅助数据库取得进展时发生。
SE_REPL_COMMIT_ACK 当事务正在等待次要副本的仲裁提交确认时发生。
SE_REPL_COMMIT_TURN 当事务在收到仲裁提交确认后等待提交时发生。
SE_REPL_ROLLBACK_ACK 当事务正在等待次要副本的仲裁回滚确认时发生。
SE_REPL_SLOW_SECONDARY_THROTTLE 当线程等待其中一个数据库辅助副本时发生。
SEC_DROP_TEMP_KEY 在尝试重试之前尝试删除临时安全密钥失败后发生。
SECURITY_MUTEX 当等待互斥体时出现,这些互斥体控制对可扩展的密钥管理 (EKM) 加密提供程序的全局列表以及 EKM 会话的会话作用域列表的访问。
SEQUENTIAL_GUID 在获取新的顺序 GUID 时发生。
SERVER_IDLE_CHECK 当资源监视器尝试将 SQL Server 实例声明为空闲或尝试唤醒时,在同步 SQL Server 实例空闲状态期间发生。
SHUTDOWN 关闭语句等待活动连接退出时发生。
SLEEP_BPOOL_FLUSH 当检查点限制新 I/O 的颁发,以避免淹没磁盘子系统时发生。
SLEEP_DBSTARTUP 在等待所有数据库恢复时在数据库启动期间发生。
SLEEP_DCOMSTARTUP 在等待 DCOM 初始化完成时,在 SQL Server 实例启动期间最多发生一次。
SLEEP_MSDBSTARTUP 在 SQL 跟踪等待 msdb 数据库完成启动时出现。
SLEEP_SYSTEMTASK 在等待 tempdb 完成启动时后台任务的启动期间出现。
SLEEP_TASK 当任务在等待泛型事件发生时休眠时发生。
SLEEP_TEMPDBSTARTUP 在任务等待 tempdb 完成启动时出现。
SNI_CRITICAL_SECTION 在 SQL Server 网络组件内部同步期间发生。
SNI_HTTP_WAITFOR_0_DISCON 在 SQL Server 关闭期间发生,同时等待未完成的 HTTP 连接退出。
SNI_LISTENER_ACCESS 在等待非统一内存访问(NUMA)节点更新状态更改时发生。 对状态更改的访问已序列化。
SNI_TASK_COMPLETION 当在 NUMA 节点状态更改期间等待所有任务完成时出现。
SOAP_READ 等待 HTTP 网络读取完成时发生。
SOAP_WRITE 等待 HTTP 网络写入完成时发生。
SOS_CALLBACK_REMOVAL 在回调列表中执行同步以删除回调时发生。 服务器初始化完成之后,此计数器可能不会更改。
SOS_DISPATCHER_MUTEX 在调度程序池的内部同步期间发生。 这包括调整池时。
SOS_LOCALALLOCATORLIST 在 SQL Server 内存管理器中的内部同步期间发生。
SOS_MEMORY_USAGE_ADJUSTMENT 在池中调整内存使用量时发生。
SOS_OBJECT_STORE_DESTROY_MUTEX 在从池中销毁对象时,在内存池内部同步期间发生。
SOS_PROCESS_AFFINITY_MUTEX 在同步对进程相关性设置的访问期间发生。
SOS_RESERVEDMEMBLOCKLIST 在 SQL Server 内存管理器中的内部同步期间发生。
SOS_SCHEDULER_YIELD 当任务自愿生成计划程序来执行其他任务时发生。 在该等待期间任务正在等待其量程更新。
SOS_SMALL_PAGE_ALLOC 在分配和释放由某些内存对象管理的内存期间发生。
SOS_STACKSTORE_INIT_MUTEX 在同步内部存储初始化期间发生。
SOS_SYNC_TASK_ENQUEUE_EVENT 以同步方式启动任务时发生。 SQL Server 中的大多数任务都是以异步方式启动的,在任务请求置于工作队列后,控件会立即返回到初学者。
SOS_VIRTUALMEMORY_LOW 在内存分配等待资源管理器释放虚拟内存时出现。
SOSHOST_EVENT 当托管组件(如 CLR)等待 SQL Server 事件同步对象时发生。
SOSHOST_INTERNAL 在同步托管组件(如 CLR)使用的内存管理器回调期间发生。
SOSHOST_MUTEX 当托管组件(如 CLR)等待 SQL Server 互斥体同步对象时发生。
SOSHOST_RWLOCK 当托管组件(如 CLR)在 SQL Server 读取器同步对象上等待时发生。
SOSHOST_SEMAPHORE 在 SQL Server 信号灯同步对象上等待托管组件(如 CLR)时发生。
SOSHOST_SLEEP 当托管任务在等待泛型事件发生时休眠时发生。 托管任务由托管组件(如 CLR)使用。
SOSHOST_TRACELOCK 在同步访问跟踪流期间发生。
SOSHOST_WAITFORDONE 当托管组件(如 CLR)等待任务完成时发生。
SQLCLR_APPDOMAIN 在 CLR 等待应用程序域完成启动时发生。
SQLCLR_ASSEMBLY 在等待访问 appdomain 中加载的程序集列表时发生。
SQLCLR_DEADLOCK_DETECTION 在 CLR 等待死锁检测完成时发生。
SQLCLR_QUANTUM_PUNISHMENT 当 CLR 任务因超出其执行量子而受到限制时发生。 完成此限制是为了减少此资源密集型任务对其他任务的影响。
SQLSORT_NORMMUTEX 在内部同步期间发生,同时初始化内部排序结构。
SQLSORT_SORTMUTEX 在内部同步期间发生,同时初始化内部排序结构。
SQLTRACE_BUFFER_FLUSH 当任务等待后台任务每隔四秒将跟踪缓冲区刷新到磁盘时发生。
SQLTRACE_LOCK 在文件跟踪期间对跟踪缓冲区进行同步期间发生。
SQLTRACE_SHUTDOWN 在跟踪关闭等待完成未完成的跟踪事件时发生。
SQLTRACE_WAIT_ENTRIES 在 SQL 跟踪事件队列等待数据包到达队列时发生。
SRVPROC_SHUTDOWN 在关闭进程等待内部资源释放以完全关闭时出现。
TEMPOBJ 同步临时对象删除时发生。 此等待很少出现,仅当任务请求临时表的独占访问权限时才会发生。
THREADPOOL 当某任务正在等待工作线程运行时出现。 这可能指示最大工作线程数设置过低,或批处理执行时间过长,从而减少可满足其他批处理的工作线程数。
TIMEPRIV_TIMEPERIOD 在扩展事件计时器的内部同步期间发生。
TRACEWRITE 当 SQL 跟踪行集跟踪提供程序等待可用缓冲区或包含要处理的事件的缓冲区时发生。
TRAN_MARKLATCH_DT 在事务标记闩锁上等待销毁模式闩锁时发生。 事务标记闩锁用于同步具有标记事务的提交。
TRAN_MARKLATCH_EX 在等待标记事务上的排他模式闩锁时发生。 事务标记闩锁用于同步具有标记事务的提交。
TRAN_MARKLATCH_KP 在等待标记事务上的保持模式闩锁时发生。 事务标记闩锁用于同步具有标记事务的提交。
TRAN_MARKLATCH_NL 标识为仅供参考。 不支持。 不保证以后的兼容性。
TRAN_MARKLATCH_SH 在标记事务上等待共享模式闩锁时发生。 事务标记闩锁用于同步具有标记事务的提交。
TRAN_MARKLATCH_UP 在等待已标记事务上的更新模式闩锁时发生。 事务标记闩锁用于同步具有标记事务的提交。
TRANSACTION_MUTEX 在同步多个批处理对事务的访问期间发生。
THROTTLE_LOG_RATE_LOG_STORAGE 由于基础存储的性能功能,写入数据库日志受到限制时发生。
UTIL_PAGE_ALLOC 当事务日志扫描等待内存在内存压力期间可用时发生。
VIA_ACCEPT 在启动期间完成虚拟接口适配器 (VIA) 提供程序连接时发生。
VIEW_DEFINITION_MUTEX 在访问缓存视图定义的同步期间发生。
WAIT_FOR_RESULTS 等待触发查询通知时发生。
WAITFOR 由于 WAITFOR Transact-SQL 语句而发生。 等待的持续时间由语句的参数决定。 这是用户启动的等待。
WAITFOR_TASKSHUTDOWN 标识为仅供参考。 不支持。 不保证以后的兼容性。
WAITSTAT_MUTEX 在同步访问用于填充 sys.dm_os_wait_stats的统计信息集合期间发生。
WCC 标识为仅供参考。 不支持。 不保证以后的兼容性。
WORKTBL_DROP 在重试前暂停时发生,在失败的工作表删除后发生。
WRITE_COMPLETION 写入作正在进行时发生。
WRITELOG 等待日志刷新完成时发生。 导致日志刷新的常见操作是检查点和事务提交。
XACT_OWN_TRANSACTION 在等待获取事务所有权时发生。
XACT_RECLAIM_SESSION 在等待会话的当前所有者释放会话所有权时发生。
XACTLOCKINFO 在对事务锁列表的访问同步期间发生。 除了事务本身之外,锁列表还由分页期间执行死锁检测和锁迁移等作进行访问。
XACTWORKSPACE_MUTEX 在事务的叛逃同步过程中发生,以及事务登记成员之间的数据库锁数。
XE_BUFFERMGR_ALLPROCESSED_EVENT 当将扩展事件会话缓冲区刷新到目标时发生。 此等待发生在后台线程上。
XE_BUFFERMGR_FREEBUF_EVENT 当以下任一条件为 true 时发生:

扩展事件会话配置为无事件损失,且会话中的所有缓冲区当前已满。 这表明扩展事件会话缓冲区太小,或应对其进行分区。

审核遇到延迟。 这可以指示写入审核的驱动器上的磁盘瓶颈。
XE_DISPATCHER_CONFIG_SESSION_LIST 在启动或停止使用异步目标的扩展事件会话时发生。 此等待表明发生了以下某一情况:

扩展事件会话正在向后台线程池注册。

后台线程池正在根据当前负荷计算需要的线程数量。
XE_DISPATCHER_JOIN 当用于扩展事件会话的后台线程终止时发生。
XE_DISPATCHER_WAIT 当用于扩展事件会话的后台线程正在等待事件缓冲区进行处理时发生。
XE_MODULEMGR_SYNC 标识为仅供参考。 不支持。 不保证以后的兼容性。
XE_OLS_LOCK 标识为仅供参考。 不支持。 不保证以后的兼容性。
XE_PACKAGE_LOCK_BACKOFF 标识为仅供参考。 不支持。 不保证以后的兼容性。
FT_COMPROWSET_RWLOCK 全文正在等待片段元数据作。 仅供参考。 不支持。 不保证以后的兼容性。
FT_IFTS_RWLOCK 全文正在等待内部同步。 仅供参考。 不支持。 不保证以后的兼容性。
FT_IFTS_SCHEDULER_IDLE_WAIT 全文计划程序睡眠等待类型。 计划程序处于空闲状态。
FT_IFTSHC_MUTEX 全文正在等待 fdhost 控制操作。 仅供参考。 不支持。 不保证以后的兼容性。
FT_IFTSISM_MUTEX 全文正在等待通信作。 仅供参考。 不支持。 不保证以后的兼容性。
FT_MASTER_MERGE 全文正在等待主合并作。 仅供参考。 不支持。 不保证以后的兼容性。