想出家的柠檬 · How to handle divide ...· 2 周前 · |
不敢表白的椰子 · On-the-fly machine ...· 1 月前 · |
傲视众生的电脑桌 · Venu Sq 2 | 智能手表 | ...· 1 月前 · |
八块腹肌的帽子 · CULTURAL ACTIVITIES ...· 2 月前 · |
追风的小摩托 · upsp.target_localizati ...· 2 月前 · |
玉树临风的乌冬面 · 萧山九中正式更名为杭州市钱塘高级中学· 1 月前 · |
风流的火柴 · 现代神话学丨我们如同历史学家般沉迷于维斯特洛 ...· 2 月前 · |
冷静的小刀 · 要不要去摇鲲池小学和蛟川书院呢?|父母|读书 ...· 4 月前 · |
飘逸的小熊猫 · 錄製Podcast的常見問題與解決方法· 4 月前 · |
率性的黄瓜 · 夜里十大禁用app入口-乐乐手游网· 5 月前 · |
transact-sql sq |
https://learn.microsoft.com/en-us/sql/relational-databases/system-dynamic-management-views/sys-dm-os-wait-stats-transact-sql?view= |
傲视众生的白开水
12 月前 |
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Download Microsoft Edge More info about Internet Explorer and Microsoft Edge Azure Synapse Analytics Analytics Platform System (PDW)
Returns information about all the waits encountered by threads that executed. You can use this aggregated view to diagnose performance issues with SQL Server and also with specific queries and batches. sys.dm_exec_session_wait_stats (Transact-SQL) provides similar information by session.
To call this from
Azure Synapse Analytics or Analytics Platform System (PDW)
, use the name
sys.dm_pdw_nodes_os_wait_stats
. This syntax is not supported by serverless SQL pool in Azure Synapse Analytics.
On SQL Server and SQL Managed Instance, requires
VIEW SERVER STATE
permission.
On SQL Database
Basic
,
S0
, and
S1
service objectives, and for databases in
elastic pools
, the
server admin
account, the
Azure Active Directory admin
account, or membership in the
##MS_ServerStateReader##
server role
is required. On all other SQL Database service objectives, either the
VIEW DATABASE STATE
permission on the database, or membership in the
##MS_ServerStateReader##
server role is required.
Requires VIEW SERVER PERFORMANCE STATE permission on the server.
Resource waits occur when a worker requests access to a resource that isn't available because the resource is being used by some other worker or isn't yet available. Examples of resource waits are locks, latches, network, and disk I/O waits. Lock and latch waits are waits on synchronization objects.
Queue waits occur when a worker is idle, waiting for work to be assigned. Queue waits are most typically seen with system background tasks such as the deadlock monitor and deleted record cleanup tasks. These tasks will wait for work requests to be placed into a work queue. Queue waits may also periodically become active even if no new packets have been put on the queue.
External waits occur when a SQL Server worker is waiting for an external event, such as an extended stored procedure call or a linked server query, to finish. When you diagnose blocking issues, remember that external waits don't always imply that the worker is idle, because the worker may actively be running some external code.
This dynamic management view shows the time for waits that have completed. This dynamic management view doesn't show current waits.
A SQL Server worker thread isn't considered to be waiting if any of the following is true:
A resource becomes available.
A queue is nonempty.
An external process finishes.
Although the thread is no longer waiting, the thread doesn't have to start running immediately. This is because such a thread is first put on the queue of runnable workers and must wait for a quantum to run on the scheduler.
In SQL Server the wait-time counters are bigint values and therefore aren't as prone to counter rollover as the equivalent counters in earlier versions of SQL Server.
Specific types of wait times during query execution can indicate bottlenecks or stall points within the query. Similarly, high wait times, or wait counts server wide can indicate bottlenecks or hot spots in interaction query interactions within the server instance. For example, lock waits indicate data contention by queries; page IO latch waits indicate slow IO response times; page latch update waits indicate incorrect file layout.
The contents of this dynamic management view can be reset. This T-SQL command resets all counters to 0:
DBCC SQLPERF ('sys.dm_os_wait_stats', CLEAR);
These statistics are not persisted after after the database engine restarts, and all data is cumulative since the last time the statistics were reset or the database engine started. Use the sqlserver_start_time
column in sys.dm_os_sys_info to find the last database engine startup time.
The following table lists the wait types encountered by tasks.
Wait Type
Description
Identified for informational purposes only. Not supported. Future compatibility isn't guaranteed.
AM_INDBUILD_ALLOCATION
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
AM_SCHEMAMGR_UNSHARED_CACHE
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
ASSEMBLY_FILTER_HASHTABLE
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
ASSEMBLY_LOAD
Occurs during exclusive access to assembly loading.
ASYNC_DISKPOOL_LOCK
Occurs when there is an attempt to synchronize parallel threads that are performing tasks such as creating or initializing a file.
ASYNC_IO_COMPLETION
Occurs when a task is waiting for asynchronous non-data I/Os to finish. Examples include I/O involved in warm standby log shipping, database mirroring, some bulk import related operations.
ASYNC_NETWORK_IO
Occurs on network writes when the task is blocked waiting for the client application to acknowledge it has processed all the data sent to it. Verify that the client application is processing data from the server as fast as possible or that no network delays exist. Reasons the client application can't consume data fast enough include: application design issues like writing results to a file while the results arrive, waiting for user input, client-side filtering on a large dataset instead of server-side filtering, or an intentional wait introduced. Also the client computer may be experiencing slow response due to issues like low virtual/physical memory, 100% CPU consumption, etc. Network delays can also lead to this wait - typically caused by network adapter driver issues, filter drivers, firewalls or misconfigured routers.
ASYNC_OP_COMPLETION
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
ASYNC_OP_CONTEXT_READ
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
ASYNC_OP_CONTEXT_WRITE
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
ASYNC_SOCKETDUP_IO
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
AUDIT_GROUPCACHE_LOCK
Occurs when there is a wait on a lock that controls access to a special cache. The cache contains information about which audits are being used to audit each audit action group.
AUDIT_LOGINCACHE_LOCK
Occurs when there is a wait on a lock that controls access to a special cache. The cache contains information about which audits are being used to audit login audit action groups.
AUDIT_ON_DEMAND_TARGET_LOCK
Occurs when there is a wait on a lock that is used to ensure single initialization of audit related Extended Event targets.
AUDIT_XE_SESSION_MGR
Occurs when there is a wait on a lock that is used to synchronize the starting and stopping of audit related Extended Events sessions.
BACKUP
Occurs when a task is blocked as part of backup processing.
BACKUP_OPERATOR
Occurs when a task is waiting for a tape mount. To view the tape status, query sys.dm_io_backup_tapes
. If a mount operation isn't pending, this wait type may indicate a hardware problem with the tape drive.
BACKUPBUFFER
Occurs when a backup task is waiting for data, or is waiting for a buffer in which to store data. This type isn't typical, except when a task is waiting for a tape mount.
BACKUPIO
Occurs when a backup task is waiting for data, or is waiting for a buffer in which to store data. This type isn't typical, except when a task is waiting for a tape mount.
BACKUPTHREAD
Occurs when a task is waiting for a backup task to finish. Wait times may be long, from several minutes to several hours. If the task that is being waited on is in an I/O process, this type doesn't indicate a problem.
BAD_PAGE_PROCESS
Occurs when the background suspect page logger is trying to avoid running more than every five seconds. Excessive suspect pages cause the logger to run frequently.
BLOB_METADATA
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
BMPALLOCATION
Occurs with parallel batch-mode plans when synchronizing the allocation of a large bitmap filter. If waiting is excessive and can't be reduced by tuning the query (such as adding indexes), consider adjusting the cost threshold for parallelism or lowering the degree of parallelism.
Applies to: SQL Server 2014 (12.x) and later versions.
BMPBUILD
Occurs with parallel batch-mode plans when synchronizing the building of a large bitmap filter. If waiting is excessive and can't be reduced by tuning the query (such as adding indexes), consider adjusting the cost threshold for parallelism or lowering the degree of parallelism.
Applies to: SQL Server 2014 (12.x) and later versions.
BMPREPARTITION
Occurs with parallel batch-mode plans when synchronizing the repartitioning of a large bitmap filter. If waiting is excessive and can't be reduced by tuning the query (such as adding indexes), consider adjusting the cost threshold for parallelism or lowering the degree of parallelism.
Applies to: SQL Server 2014 (12.x) and later versions.
BMPREPLICATION
Occurs with parallel batch-mode plans when synchronizing the replication of a large bitmap filter across worker threads. If waiting is excessive and can't be reduced by tuning the query (such as adding indexes), consider adjusting the cost threshold for parallelism or lowering the degree of parallelism.
Applies to: SQL Server 2014 (12.x) and later versions.
BPSORT
Occurs with parallel batch-mode plans when synchronizing the sorting of a dataset across multiple threads. If waiting is excessive and can't be reduced by tuning the query (such as adding indexes), consider adjusting the cost threshold for parallelism or lowering the degree of parallelism.
Applies to: SQL Server 2016 (13.x) and later versions.
BROKER_CONNECTION_RECEIVE_TASK
Occurs when waiting for access to receive a message on a connection endpoint. Receive access to the endpoint is serialized.
BROKER_DISPATCHER
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
BROKER_ENDPOINT_STATE_MUTEX
Occurs when there is contention to access the state of a Service Broker connection endpoint. Access to the state for changes is serialized.
BROKER_EVENTHANDLER
Occurs when a task is waiting in the primary event handler of the Service Broker. This should occur very briefly.
BROKER_FORWARDER
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
BROKER_INIT
Occurs when initializing Service Broker in each active database. This should occur infrequently.
BROKER_MASTERSTART
Occurs when a task is waiting for the primary event handler of the Service Broker to start. This should occur very briefly.
BROKER_RECEIVE_WAITFOR
Occurs when the RECEIVE WAITFOR is waiting. This may mean that either no messages are ready to be received in the queue or a lock contention is preventing it from receiving messages from the queue.
BROKER_REGISTERALLENDPOINTS
Occurs during the initialization of a Service Broker connection endpoint. This should occur very briefly.
BROKER_SERVICE
Occurs when the Service Broker destination list that is associated with a target service is updated or reprioritized.
BROKER_SHUTDOWN
Occurs when there is a planned shutdown of Service Broker. This should occur very briefly, if at all.
BROKER_START
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
BROKER_TASK_SHUTDOWN
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
BROKER_TASK_STOP
Occurs when the Service Broker queue task handler tries to shut down the task. The state check is serialized and must be in a running state beforehand.
BROKER_TASK_SUBMIT
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
BROKER_TO_FLUSH
Occurs when the Service Broker lazy flusher flushes the in-memory transmission objects to a work table.
BROKER_TRANSMISSION_OBJECT
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
BROKER_TRANSMISSION_TABLE
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
BROKER_TRANSMISSION_WORK
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
BROKER_TRANSMITTER
Occurs when the Service Broker transmitter is waiting for work. Service Broker has a component known as the Transmitter, which schedules messages from multiple dialogs to be sent across the wire over one or more connection endpoints. The transmitter has 2 dedicated threads for this purpose. This wait type is charged when these transmitter threads are waiting for dialog messages to be sent using the transport connections. High values of waiting_tasks_count
for this wait type point to intermittent work for these transmitter threads and aren't indications of any performance problem. If service broker isn't used at all, waiting_tasks_count
should be 2 (for the 2 transmitter threads), and wait_time_ms should be twice the duration since instance startup. See Service broker wait stats.
BUFFERPOOL_SCAN
May occur when the buffer pool scan runs in parallel and the main task waits for the scan to complete. For more information, see Operations that trigger a buffer pool scan may run slowly on large-memory computers.
Applies to: SQL Server 2022 (16.x) and later versions.
BUILTIN_HASHKEY_MUTEX
May occur after startup of instance, while internal data structures are initializing. Won't recur once data structures have initialized.
CHANGE_TRACKING_WAITFORCHANGES
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
CHECK_PRINT_RECORD
Identified for informational purposes only. Not supported. Future compatibility isn't guaranteed.
CHECK_SCANNER_MUTEX
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
CHECK_TABLES_INITIALIZATION
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
CHECK_TABLES_SINGLE_SCAN
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
CHECK_TABLES_THREAD_BARRIER
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
CHECKPOINT_QUEUE
Occurs while the checkpoint task is waiting for the next checkpoint request.
CHKPT
Occurs at server startup to tell the checkpoint thread that it can start.
CLEAR_DB
Occurs during operations that change the state of a database, such as opening or closing a database.
CLR_AUTO_EVENT
Occurs when a task is currently performing common language runtime (CLR) execution and is waiting for a particular autoevent to be initiated. Long waits are typical, and don't indicate a problem.
CLR_CRST
Occurs when a task is currently performing CLR execution and is waiting to enter a critical section of the task that is currently being used by another task.
CLR_JOIN
Occurs when a task is currently performing CLR execution and waiting for another task to end. This wait state occurs when there is a join between tasks.
CLR_MANUAL_EVENT
Occurs when a task is currently performing CLR execution and is waiting for a specific manual event to be initiated.
CLR_MEMORY_SPY
Occurs during a wait on lock acquisition for a data structure that is used to record all virtual memory allocations that come from CLR. The data structure is locked to maintain its integrity if there is parallel access.
CLR_MONITOR
Occurs when a task is currently performing CLR execution and is waiting to obtain a lock on the monitor.
CLR_RWLOCK_READER
Occurs when a task is currently performing CLR execution and is waiting for a reader lock.
CLR_RWLOCK_WRITER
Occurs when a task is currently performing CLR execution and is waiting for a writer lock.
CLR_SEMAPHORE
Occurs when a task is currently performing CLR execution and is waiting for a semaphore.
CLR_TASK_START
Occurs while waiting for a CLR task to complete startup.
CLRHOST_STATE_ACCESS
Occurs where there is a wait to acquire exclusive access to the CLR-hosting data structures. This wait type occurs while setting up or tearing down the CLR runtime.
CMEMPARTITIONED
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
CMEMTHREAD
Occurs when a task is waiting on a thread-safe memory object. The wait time might increase when there is contention caused by multiple tasks trying to allocate memory from the same memory object.
COLUMNSTORE_BUILD_THROTTLE
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
COLUMNSTORE_COLUMNDATASET_SESSION_LIST
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
COMMIT_TABLE
Internal use only.
CONNECTION_ENDPOINT_LOCK
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
COUNTRECOVERYMGR
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
CREATE_DATINISERVICE
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
CXCONSUMER
Occurs with parallel query plans when a consumer thread (parent) waits for a producer thread to send rows. CXCONSUMER waits are caused by an Exchange Iterator that runs out of rows from its producer thread. This is a normal part of parallel query execution.
Applies to: SQL Server (Starting with SQL Server 2016 (13.x) SP2, SQL Server 2017 (14.x) CU3), Azure SQL Database, Azure SQL Managed Instance
CXPACKET
Occurs with parallel query plans when waiting to synchronize the Query Processor Exchange Iterator, and when producing and consuming rows. If waiting is excessive and can't be reduced by tuning the query (such as adding indexes), consider adjusting the Cost Threshold for Parallelism or lowering the Max Degree of Parallelism (MaxDOP).
Note: Starting with SQL Server 2016 (13.x) SP2 and SQL Server 2017 (14.x) CU3, CXPACKET only refers to waiting to synchronize the Exchange Iterator and producing rows. Threads consuming rows are tracked separately in the CXCONSUMER wait type. If the consumer threads are too slow, the Exchange Iterator buffer may become full and cause CXPACKET waits.
Note: In Azure SQL Database and Azure SQL Managed Instance, CXPACKET only refers to waiting on threads producing rows. Exchange Iterator synchronization is tracked separately in the CXSYNC_PORT and CXSYNC_CONSUMER wait types. Threads consuming rows are tracked separately in the CXCONSUMER wait type.
CXSYNC_PORT
Occurs with parallel query plans when waiting to open, close, and synchronize Exchange Iterator ports between producer and consumer threads. For example, if a query plan has a long sort operation, CXSYNC_PORT waits may be higher because the sort must complete before the Exchange Iterator port can be synchronized.
Applies to: Azure SQL Database, Azure SQL Managed Instance
CXSYNC_CONSUMER
Occurs with parallel query plans when waiting to reach an Exchange Iterator synchronization point among all consumer threads.
Applies to: Azure SQL Database, Azure SQL Managed Instance
CXROWSET_SYNC
Occurs during a parallel range scan.
DAC_INIT
Occurs while the dedicated administrator connection is initializing.
DBCC_SCALE_OUT_EXPR_CACHE
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
DBMIRROR_DBM_EVENT
Identified for informational purposes only. Not supported. Future compatibility isn't guaranteed.
DBMIRROR_DBM_MUTEX
Identified for informational purposes only. Not supported. Future compatibility isn't guaranteed.
DBMIRROR_EVENTS_QUEUE
Occurs when database mirroring waits for events to process.
DBMIRROR_SEND
Occurs when a task is waiting for a communications backlog at the network layer to clear to be able to send messages. Indicates that the communications layer is starting to become overloaded and affect the database mirroring data throughput.
DBMIRROR_WORKER_QUEUE
Indicates that the database mirroring worker task is waiting for more work.
DBMIRRORING_CMD
Occurs when a task is waiting for log records to be flushed to disk. This wait state is expected to be held for long periods of time.
DBSEEDING_FLOWCONTROL
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
DBSEEDING_OPERATION
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
DEADLOCK_ENUM_MUTEX
Occurs when the deadlock monitor and sys.dm_os_waiting_tasks
try to make sure that SQL Server isn't running multiple deadlock searches at the same time.
DEADLOCK_TASK_SEARCH
Large waiting time on this resource indicates that the server is executing queries on top of sys.dm_os_waiting_tasks
, and these queries are blocking deadlock monitor from running deadlock search. This wait type is used by deadlock monitor only. Queries on top of sys.dm_os_waiting_tasks
use DEADLOCK_ENUM_MUTEX.
DEBUG
Occurs during Transact-SQL and CLR debugging for internal synchronization.
DIRECTLOGCONSUMER_LIST
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
DIRTY_PAGE_POLL
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
DIRTY_PAGE_SYNC
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
DIRTY_PAGE_TABLE_LOCK
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
DISABLE_VERSIONING
Occurs when SQL Server polls the version transaction manager to see whether the timestamp of the earliest active transaction is later than the timestamp of when the state started changing. If this is this case, all the snapshot transactions that were started before the ALTER DATABASE statement was run have finished. This wait state is used when SQL Server disables versioning by using the ALTER DATABASE statement.
DISKIO_SUSPEND
Occurs when a task is waiting to access a file when an external backup is active. This is reported for each waiting user process. A count larger than five per user process may indicate that the external backup is taking too much time to finish.
DISPATCHER_PRIORITY_QUEUE_SEMAPHORE
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
DISPATCHER_QUEUE_SEMAPHORE
Occurs when a thread from the dispatcher pool is waiting for more work to process. The wait time for this wait type is expected to increase when the dispatcher is idle.
DLL_LOADING_MUTEX
Occurs once while waiting for the XML parser DLL to load.
DPT_ENTRY_LOCK
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
DROP_DATABASE_TIMER_TASK
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
DROPTEMP
Occurs between attempts to drop a temporary object if the previous attempt failed. The wait duration grows exponentially with each failed drop attempt.
Occurs when a task is waiting on an event that is used to manage state transition. This state controls when the recovery of Microsoft Distributed Transaction Coordinator (MS DTC) transactions occurs after SQL Server receives notification that the MS DTC service has become unavailable.
DTC_ABORT_REQUEST
Occurs in an MSDTC worker session when the session is waiting to take ownership of an MSDTC transaction. After MS DTC owns the transaction, the session can roll back the transaction. Generally, the session will wait for another session that is using the transaction.
DTC_RESOLVE
Occurs when a recovery task is waiting for the master
database in a cross-database transaction so that the task can query the outcome of the transaction.
DTC_STATE
Occurs when a task is waiting on an event that protects changes to the internal MS DTC global state object. This state should be held for very short periods of time.
DTC_TMDOWN_REQUEST
Occurs in an MSDTC worker session when SQL Server receives notification that the MS DTC service isn't available. First, the worker will wait for the MS DTC recovery process to start. Then, the worker waits to obtain the outcome of the distributed transaction that the worker is working on. This may continue until the connection with the MS DTC service has been reestablished.
DTC_WAITFOR_OUTCOME
Occurs when recovery tasks wait for MS DTC to become active to enable the resolution of prepared transactions.
DTCNEW_ENLIST
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
DTCNEW_PREPARE
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
DTCNEW_RECOVERY
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
DTCNEW_TM
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
DTCNEW_TRANSACTION_ENLISTMENT
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
DTCPNTSYNC
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
DUMP_LOG_COORDINATOR
Occurs when a main task is waiting for a subtask to generate data. Ordinarily, this state doesn't occur. A long wait indicates an unexpected blockage. The subtask should be investigated.
DUMP_LOG_COORDINATOR_QUEUE
Internal use only.
DUMPTRIGGER
Identified for informational purposes only. Not supported. Future compatibility isn't guaranteed.
Identified for informational purposes only. Not supported. Future compatibility isn't guaranteed.
EE_PMOLOCK
Occurs during synchronization of certain types of memory allocations during statement execution.
EE_SPECPROC_MAP_INIT
Occurs during synchronization of internal procedure hash table creation. This wait can only occur during the initial accessing of the hash table after the SQL Server instance starts.
ENABLE_EMPTY_VERSIONING
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
ENABLE_VERSIONING
Occurs when SQL Server waits for all update transactions in this database to finish before declaring the database ready to transition to snapshot isolation allowed state. This state is used when SQL Server enables snapshot isolation by using the ALTER DATABASE statement.
ERROR_REPORTING_MANAGER
Occurs during synchronization of multiple concurrent error log initializations.
EXCHANGE
Occurs during synchronization in the query processor exchange iterator during parallel queries.
EXECSYNC
Occurs during parallel queries while synchronizing in query processor in areas not related to the exchange iterator. Examples of such areas are bitmaps, large binary objects (LOBs), and the spool iterator. LOBs may frequently use this wait state.
EXECUTION_PIPE_EVENT_INTERNAL
Occurs during synchronization between producer and consumer parts of batch execution that are submitted through the connection context.
EXTERNAL_RG_UPDATE
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
EXTERNAL_SCRIPT_NETWORK_IO
Internal use only.
Applies to: SQL Server 2017 (14.x) through current.
EXTERNAL_SCRIPT_PREPARE_SERVICE
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
EXTERNAL_SCRIPT_SHUTDOWN
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
EXTERNAL_WAIT_ON_LAUNCHER,
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
FABRIC_HADR_TRANSPORT_CONNECTION
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
FABRIC_REPLICA_CONTROLLER_LIST
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
FABRIC_REPLICA_CONTROLLER_STATE_AND_CONFIG
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
FABRIC_REPLICA_PUBLISHER_EVENT_PUBLISH
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
FABRIC_REPLICA_PUBLISHER_SUBSCRIBER_LIST
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
FABRIC_WAIT_FOR_BUILD_REPLICA_EVENT_PROCESSING
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
FAILPOINT
Identified for informational purposes only. Not supported. Future compatibility isn't guaranteed.
FCB_REPLICA_READ
Occurs when the reads of a snapshot (or a temporary snapshot created by DBCC) sparse file are synchronized.
FCB_REPLICA_WRITE
Occurs when the pushing or pulling of a page to a snapshot (or a temporary snapshot created by DBCC) sparse file is synchronized.
FEATURE_SWITCHES_UPDATE
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
FFT_NSO_DB_KILL_FLAG
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
FFT_NSO_DB_LIST
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
FFT_NSO_FCB
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
FFT_NSO_FCB_FIND
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
FFT_NSO_FCB_PARENT
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
FFT_NSO_FCB_RELEASE_CACHED_ENTRIES
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
FFT_NSO_FCB_STATE
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
FFT_NSO_FILEOBJECT
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
FFT_NSO_TABLE_LIST
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
FFT_NTFS_STORE
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
FFT_RECOVERY
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
FFT_RSFX_COMM
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
FFT_RSFX_WAIT_FOR_MEMORY
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
FFT_STARTUP_SHUTDOWN
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
FFT_STORE_DB
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
FFT_STORE_ROWSET_LIST
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
FFT_STORE_TABLE
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
FILE_VALIDATION_THREADS
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
FILESTREAM_CACHE
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
FILESTREAM_CHUNKER
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
FILESTREAM_CHUNKER_INIT
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
FILESTREAM_FCB
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
FILESTREAM_FILE_OBJECT
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
FILESTREAM_WORKITEM_QUEUE
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
FILETABLE_SHUTDOWN
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
FOREIGN_REDO
Internal use only.
Applies to: SQL Server 2017 (14.x) through current.
FORWARDER_TRANSITION
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
FS_FC_RWLOCK
Occurs when there is a wait by the FILESTREAM garbage collector to do either of the following:
- Disable garbage collection (used by backup and restore).
- Execute one cycle of the FILESTREAM garbage collector.
FS_GARBAGE_COLLECTOR_SHUTDOWN
Occurs when the FILESTREAM garbage collector is waiting for cleanup tasks to be completed.
FS_HEADER_RWLOCK
Occurs when there is a wait to acquire access to the FILESTREAM header of a FILESTREAM data container to either read or update contents in the FILESTREAM header file (Filestream.hdr).
FS_LOGTRUNC_RWLOCK
Occurs when there is a wait to acquire access to FILESTREAM log truncation to do either of the following:
- Temporarily disable FILESTREAM log (FSLOG) truncation (used by backup and restore).
- Execute one cycle of FSLOG truncation.
FSA_FORCE_OWN_XACT
Occurs when a FILESTREAM file I/O operation needs to bind to the associated transaction, but the transaction is currently owned by another session.
FSAGENT
Occurs when a FILESTREAM file I/O operation is waiting for a FILESTREAM agent resource that is being used by another file I/O operation.
FSTR_CONFIG_MUTEX
Occurs when there is a wait for another FILESTREAM feature reconfiguration to be completed.
FSTR_CONFIG_RWLOCK
Occurs when there is a wait to serialize access to the FILESTREAM configuration parameters.
FT_COMPROWSET_RWLOCK
Full-text is waiting on fragment metadata operation. Documented for informational purposes only. Not supported. Future compatibility isn't guaranteed.
FT_IFTS_RWLOCK
Full-text is waiting on internal synchronization. Documented for informational purposes only. Not supported. Future compatibility isn't guaranteed.
FT_IFTS_SCHEDULER_IDLE_WAIT
Full-text scheduler sleep wait type. The scheduler is idle.
FT_IFTS_ASYNC_WRITE_PIPE
Internal use only.
Applies to: SQL Server 2022 (16.x) CU 1 and later versions.
FT_IFTS_BLOB_HASH
Internal use only.
Applies to: SQL Server 2022 (16.x) CU 1 and later versions.
FT_IFTS_CATEALOG_SOURCE
Internal use only.
Applies to: SQL Server 2022 (16.x) CU 1 and later versions.
FT_IFTS_CHUNK_BUFFER_CLIENT_MANAGER
Internal use only.
Applies to: SQL Server 2022 (16.x) CU 1 and later versions.
FT_IFTS_CHUNK_BUFFER_PROTO_WORD_LIST
Internal use only.
Applies to: SQL Server 2022 (16.x) CU 1 and later versions.
FT_IFTS_COMP_DESC_MANAGER
Internal use only.
Applies to: SQL Server 2022 (16.x) CU 1 and later versions.
FT_IFTS_CONSUMER_PLUGIN
Internal use only.
Applies to: SQL Server 2022 (16.x) CU 1 and later versions.
FT_IFTS_CRAWL_BATCH_LIST
Internal use only.
Applies to: SQL Server 2022 (16.x) CU 1 and later versions.
FT_IFTS_CRAWL_CHILDREN
Internal use only.
Applies to: SQL Server 2022 (16.x) CU 1 and later versions.
FT_IFTS_DOCID_INTERFACE_LIST
Internal use only.
Applies to: SQL Server 2022 (16.x) CU 1 and later versions.
FT_IFTS_DOCID_LIST
Internal use only.
Applies to: SQL Server 2022 (16.x) CU 1 and later versions.
FT_IFTS_FP_INFO_LIST
Internal use only.
Applies to: SQL Server 2022 (16.x) CU 1 and later versions.
FT_IFTS_HOST_CONTROLLER
Internal use only.
Applies to: SQL Server 2022 (16.x) CU 1 and later versions.
FT_IFTS_MASTER_MERGE_TASK_LIST
Internal use only.
Applies to: SQL Server 2022 (16.x) CU 1 and later versions.
FT_IFTS_MEMREGPOOL
Internal use only.
Applies to: SQL Server 2022 (16.x) CU 1 and later versions.
FT_IFTS_MERGE_FRAGMENT_SYNC
Internal use only.
Applies to: SQL Server 2022 (16.x) CU 1 and later versions.
FT_IFTS_NOISE_WORDS_COLLECTION_CACHE
Internal use only.
Applies to: SQL Server 2022 (16.x) CU 1 and later versions.
FT_IFTS_NOISE_WORDS_RESOURCE
Internal use only.
Applies to: SQL Server 2022 (16.x) CU 1 and later versions.
FT_IFTS_OCCURRENCE_BUFFER_POOL
Internal use only.
Applies to: SQL Server 2022 (16.x) CU 1 and later versions.
FT_IFTS_PIPELINE
Internal use only.
Applies to: SQL Server 2022 (16.x) CU 1 and later versions.
FT_IFTS_PIPELINE_LIST
Internal use only.
Applies to: SQL Server 2022 (16.x) CU 1 and later versions.
FT_IFTS_PIPELINE_MANAGER
Internal use only.
Applies to: SQL Server 2022 (16.x) CU 1 and later versions.
FT_IFTS_PROJECT_FD_INFO_MAP
Internal use only.
Applies to: SQL Server 2022 (16.x) CU 1 and later versions.
FT_IFTS_SCHEDULER
Internal use only.
Applies to: SQL Server 2022 (16.x) CU 1 and later versions.
FT_IFTS_SHARED_MEMORY
Internal use only.
Applies to: SQL Server 2022 (16.x) CU 1 and later versions.
FT_IFTS_SHUTDOWN_PIPE
Internal use only.
Applies to: SQL Server 2022 (16.x) CU 1 and later versions.
FT_IFTS_SRCH_FD_MANAGER
Internal use only.
Applies to: SQL Server 2022 (16.x) CU 1 and later versions.
FT_IFTS_SRCH_FD_SERVICE
Internal use only.
Applies to: SQL Server 2022 (16.x) CU 1 and later versions.
FT_IFTS_STOPLIST_CACHE_MANAGER
Internal use only.
Applies to: SQL Server 2022 (16.x) CU 1 and later versions.
FT_IFTS_THESAURUS
Internal use only.
Applies to: SQL Server 2022 (16.x) CU 1 and later versions.
FT_IFTS_VERSION_MANAGER
Internal use only.
Applies to: SQL Server 2022 (16.x) CU 1 and later versions.
FT_IFTS_WORK_QUEUE
Internal use only.
Applies to: SQL Server 2022 (16.x) CU 1 and later versions.
FT_IFTSHC_MUTEX
Full-text is waiting on an fdhost control operation. Documented for informational purposes only. Not supported. Future compatibility isn't guaranteed.
FT_IFTSISM_MUTEX
Full-text is waiting on communication operation. Documented for informational purposes only. Not supported. Future compatibility isn't guaranteed.
FT_MASTER_MERGE
Full-text is waiting on master merge operation. Documented for informational purposes only. Not supported. Future compatibility isn't guaranteed.
FT_MASTER_MERGE_COORDINATOR
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
FT_METADATA_MUTEX
Documented for informational purposes only. Not supported. Future compatibility isn't guaranteed.
FT_PROPERTYLIST_CACHE
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
FT_RESTART_CRAWL
Occurs when a full-text crawl needs to restart from a last known good point to recover from a transient failure. The wait lets the worker tasks currently working on that population to complete or exit the current step.
FULLTEXT GATHERER
Occurs during synchronization of full-text operations.
GDMA_GET_RESOURCE_OWNER
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
GHOSTCLEANUP_UPDATE_STATS
Internal use only.
Applies to: SQL Server 2017 (14.x) and later versions.
GHOSTCLEANUPSYNCMGR
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
GLOBAL_QUERY_CANCEL
Internal use only.
Applies to: SQL Server 2017 (14.x) and later versions.
GLOBAL_QUERY_CLOSE
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
GLOBAL_QUERY_CONSUMER
Internal use only.
Applies to: SQL Server 2017 (14.x) and later versions.
GLOBAL_QUERY_PRODUCER
Internal use only.
Applies to: SQL Server 2017 (14.x) and later versions.
GLOBAL_TRAN_CREATE
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
GLOBAL_TRAN_UCS_SESSION
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
GUARDIAN
Identified for informational purposes only. Not supported. Future compatibility isn't guaranteed.
HADR_AG_MUTEX
Occurs when an Always On DDL statement or Windows Server Failover Clustering command is waiting for exclusive read/write access to the configuration of an availability group.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_AR_CRITICAL_SECTION_ENTRY
Occurs when an Always On DDL statement or Windows Server Failover Clustering command is waiting for exclusive read/write access to the runtime state of the local replica of the associated availability group.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_AR_MANAGER_MUTEX
Occurs when an availability replica shutdown is waiting for startup to complete or an availability replica startup is waiting for shutdown to complete. Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_AR_UNLOAD_COMPLETED
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_ARCONTROLLER_NOTIFICATIONS_SUBSCRIBER_LIST
The publisher for an availability replica event (such as a state change or configuration change) is waiting for exclusive read/write access to the list of event subscribers. Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_BACKUP_BULK_LOCK
The Always On primary database received a backup request from a secondary database and is waiting for the background thread to finish processing the request on acquiring or releasing the BulkOp lock.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_BACKUP_QUEUE
The backup background thread of the Always On primary database is waiting for a new work request from the secondary database. (Typically, this occurs when the primary database is holding the BulkOp log and is waiting for the secondary database to indicate that the primary database can release the lock).
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_CLUSAPI_CALL
A SQL Server thread is waiting to switch from non-preemptive mode (scheduled by SQL Server) to preemptive mode (scheduled by the operating system) in order to invoke Windows Server Failover Clustering APIs.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_COMPRESSED_CACHE_SYNC
Waiting for access to the cache of compressed log blocks that is used to avoid redundant compression of the log blocks sent to multiple secondary databases.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_CONNECTIVITY_INFO
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_DATABASE_FLOW_CONTROL
Waiting for messages to be sent to the partner when the maximum number of queued messages has been reached. Indicates that the log scans are running faster than the network sends. This is an issue only if network sends are slower than expected.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_DATABASE_VERSIONING_STATE
Occurs on the versioning state change of an Always On secondary database. This wait is for internal data structures and usually is very short with no direct effect on data access.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_DATABASE_WAIT_FOR_RECOVERY
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
HADR_DATABASE_WAIT_FOR_RESTART
Waiting for the database to restart under Always On Availability Groups control. Under normal conditions, this isn't a customer issue because waits are expected here.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_DATABASE_WAIT_FOR_TRANSITION_TO_VERSIONING
A query on object(s) in a readable secondary database of an Always On availability group is blocked on row versioning while waiting for commit or rollback of all transactions that were in-flight when the secondary replica was enabled for read workloads. This wait type guarantees that row versions are available before execution of a query under snapshot isolation.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_DB_COMMAND
Waiting for responses to conversational messages (which require an explicit response from the other side, using the Always On conversational message infrastructure). Many different message types use this wait type.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_DB_OP_COMPLETION_SYNC
Waiting for responses to conversational messages (which require an explicit response from the other side, using the Always On conversational message infrastructure). Many different message types use this wait type.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_DB_OP_START_SYNC
An Always On DDL statement or a Windows Server Failover Clustering command is waiting for serialized access to an availability database and its runtime state.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_DBR_SUBSCRIBER
The publisher for an availability replica event (such as a state change or configuration change) is waiting for exclusive read/write access to the runtime state of an event subscriber that corresponds to an availability database. Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_DBR_SUBSCRIBER_FILTER_LIST
The publisher for an availability replica event (such as a state change or configuration change) is waiting for exclusive read/write access to the list of event subscribers that correspond to availability databases. Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_DBSEEDING
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
HADR_DBSEEDING_LIST
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
HADR_DBSTATECHANGE_SYNC
Concurrency control wait for updating the internal state of the database replica.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_FABRIC_CALLBACK
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
HADR_FILESTREAM_BLOCK_FLUSH
The FILESTREAM Always On transport manager is waiting until processing of a log block is finished.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_FILESTREAM_FILE_CLOSE
The FILESTREAM Always On transport manager is waiting until the next FILESTREAM file gets processed and its handle gets closed.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_FILESTREAM_FILE_REQUEST
An Always On secondary replica is waiting for the primary replica to send all requested FILESTREAM files during UNDO.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_FILESTREAM_IOMGR
The FILESTREAM Always On transport manager is waiting for R/W lock that protects the FILESTREAM Always On I/O manager during startup or shutdown.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_FILESTREAM_IOMGR_IOCOMPLETION
The FILESTREAM Always On I/O manager is waiting for I/O completion.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_FILESTREAM_MANAGER
The FILESTREAM Always On transport manager is waiting for the R/W lock that protects the FILESTREAM Always On transport manager during startup or shutdown.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_FILESTREAM_PREPROC
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
HADR_GROUP_COMMIT
Transaction commit processing is waiting to allow a group commit so that multiple commit log records can be put into a single log block. This wait is an expected condition that optimizes the log I/O, capture, and send operations.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_LOGCAPTURE_SYNC
Concurrency control around the log capture or apply object when creating or destroying scans. This is an expected wait when partners change state or connection status.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_LOGCAPTURE_WAIT
Waiting for log records to become available. Can occur either when waiting for new log records to be generated by connections or for I/O completion when reading log not in the cache. This is an expected wait if the log scan is caught up to the end of log or is reading from disk.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_LOGPROGRESS_SYNC
Concurrency control wait when updating the log progress status of database replicas.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_NOTIFICATION_DEQUEUE
A background task that processes Windows Server Failover Clustering notifications is waiting for the next notification. Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_NOTIFICATION_WORKER_EXCLUSIVE_ACCESS
The Always On availability replica manager is waiting for serialized access to the runtime state of a background task that processes Windows Server Failover Clustering notifications. Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_NOTIFICATION_WORKER_STARTUP_SYNC
A background task is waiting for the completion of the startup of a background task that processes Windows Server Failover Clustering notifications. Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_NOTIFICATION_WORKER_TERMINATION_SYNC
A background task is waiting for the termination of a background task that processes Windows Server Failover Clustering notifications. Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_PARTNER_SYNC
Concurrency control wait on the partner list.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_READ_ALL_NETWORKS
Waiting to get read or write access to the list of WSFC networks. Internal use only. Note: The engine keeps a list of WSFC networks that is used in dynamic management views (such as sys.dm_hadr_cluster_networks
) or to validate Always On Transact-SQL statements that reference WSFC network information. This list is updated upon engine startup, WSFC related notifications, and internal Always On restart (for example, losing and regaining of WSFC quorum). Tasks will usually be blocked when an update in that list is in progress.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_RECOVERY_WAIT_FOR_CONNECTION
Waiting for the secondary database to connect to the primary database before running recovery. This is an expected wait, which can lengthen if the connection to the primary is slow to establish.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_RECOVERY_WAIT_FOR_UNDO
Database recovery is waiting for the secondary database to finish the reverting and initializing phase to bring it back to the common log point with the primary database. This is an expected wait after failovers. Undo progress can be tracked through the Windows System Monitor (perfmon.exe) and dynamic management views.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_REPLICAINFO_SYNC
Waiting for concurrency control to update the current replica state.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_SEEDING_CANCELLATION
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
HADR_SEEDING_FILE_LIST
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
HADR_SEEDING_LIMIT_BACKUPS
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
HADR_SEEDING_SYNC_COMPLETION
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
HADR_SEEDING_TIMEOUT_TASK
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
HADR_SEEDING_WAIT_FOR_COMPLETION
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
HADR_SYNC_COMMIT
Waiting for a transaction commit processing on the synchronized secondary databases to harden the log. This wait is also reflected by the Transaction Delay performance counter. This wait type is expected for synchronous-commit Availability Groups and indicates the time to send, write, and acknowledge log commit to the secondary databases.
For detailed information and troubleshooting HADR_SYNC_COMMIT, refer to this blog post
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_SYNCHRONIZING_THROTTLE
Waiting for transaction commit processing to allow a synchronizing secondary database to catch up to the primary end of the log, in order to transition to the synchronized state. This is an expected wait when a secondary database is catching up.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_TDS_LISTENER_SYNC
Either the internal Always On system or the WSFC cluster will request that listeners are started or stopped. The processing of this request is always asynchronous, and there is a mechanism to remove redundant requests. There are also moments that this process is suspended because of configuration changes. All waits related with this listener synchronization mechanism use this wait type. Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_TDS_LISTENER_SYNC_PROCESSING
Used at the end of an Always On Transact-SQL statement that requires starting and/or stopping an availability group listener. Since the start/stop operation is done asynchronously, the user thread will block using this wait type until the situation of the listener is known.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_THROTTLE_LOG_RATE_GOVERNOR
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
HADR_THROTTLE_LOG_RATE_MISMATCHED_SLO
Occurs when a geo-replication secondary is configured with lower compute size (lower SLO) than the primary. A primary database is throttled due to delayed log consumption by the secondary. This is caused by the secondary database having insufficient compute capacity to keep up with the primary database's rate of change.
Applies to: Azure SQL Database
HADR_THROTTLE_LOG_RATE_LOG_SIZE
Internal use only.
Applies to: SQL Server 2017 (14.x) and later versions.
HADR_THROTTLE_LOG_RATE_SEEDING
Internal use only.
Applies to: SQL Server 2017 (14.x) and later versions.
HADR_THROTTLE_LOG_RATE_SEND_RECV_QUEUE_SIZE
Internal use only.
Applies to: SQL Server 2017 (14.x) and later versions.
HADR_TIMER_TASK
Waiting to get the lock on the timer task object and is also used for the actual waits between times that work is being performed. For example, for a task that runs every 10 seconds, after one execution, Always On Availability Groups waits about 10 seconds to reschedule the task, and the wait is included here.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_TRANSPORT_DBRLIST
Waiting for access to the transport layer's database replica list. Used for the spinlock that grants access to it.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_TRANSPORT_FLOW_CONTROL
Waiting when the number of outstanding unacknowledged Always On messages is over the out flow control threshold. This is on an availability replica-to-replica basis (not on a database-to-database basis).
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_TRANSPORT_SESSION
Always On Availability Groups is waiting while changing or accessing the underlying transport state.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_WORK_POOL
Concurrency control wait on the Always On Availability Groups background work task object.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_WORK_QUEUE
Always On Availability Groups background worker thread waiting for new work to be assigned. This is an expected wait when there are ready workers waiting for new work, which is the normal state.
Applies to: SQL Server 2012 (11.x) and later versions.
HADR_XRF_STACK_ACCESS
Accessing (look up, add, and delete) the extended recovery fork stack for an Always On availability database.
Applies to: SQL Server 2012 (11.x) and later versions.
HCCO_CACHE
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
HK_RESTORE_FILEMAP
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
HKCS_PARALLEL_MIGRATION
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
HKCS_PARALLEL_RECOVERY
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
HTBUILD
Occurs with parallel batch-mode plans when synchronizing the building of the hash table on the input side of a hash join/aggregation. If waiting is excessive and can't be reduced by tuning the query (such as adding indexes), consider adjusting the cost threshold for parallelism or lowering the degree of parallelism.
Applies to: SQL Server 2012 (11.x) and later versions.
HTDELETE
Occurs with parallel batch-mode plans when synchronizing at the end of a hash join/aggregation. If waiting is excessive and can't be reduced by tuning the query (such as adding indexes), consider adjusting the cost threshold for parallelism or lowering the degree of parallelism.
Applies to: SQL Server 2014 (12.x) and later versions.
HTMEMO
Occurs with parallel batch-mode plans when synchronizing before scanning hash table to output matches / non-matches in hash join/aggregation. If waiting is excessive and can't be reduced by tuning the query (such as adding indexes), consider adjusting the cost threshold for parallelism or lowering the degree of parallelism.
Applies to: SQL Server 2014 (12.x) and later versions.
HTREINIT
Occurs with parallel batch-mode plans when synchronizing before resetting a hash join/aggregation for the next partial join. If waiting is excessive and can't be reduced by tuning the query (such as adding indexes), consider adjusting the cost threshold for parallelism or lowering the degree of parallelism.
Applies to: SQL Server 2014 (12.x) and later versions.
HTREPARTITION
Occurs with parallel batch-mode plans when synchronizing the repartitioning of the hash table on the input side of a hash join/aggregation. If waiting is excessive and can't be reduced by tuning the query (such as adding indexes), consider adjusting the cost threshold for parallelism or lowering the degree of parallelism.
Applies to: SQL Server 2012 (11.x) and later versions.
HTTP_ENUMERATION
Occurs at startup to enumerate the HTTP endpoints to start HTTP.
HTTP_START
Occurs when a connection is waiting for HTTP to complete initialization.
HTTP_STORAGE_CONNECTION
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
IMPPROV_IOWAIT
Occurs when SQL Server waits for a bulkload I/O to finish.
INSTANCE_LOG_RATE_GOVERNOR
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
INTERNAL_TESTING
Identified for informational purposes only. Not supported. Future compatibility isn't guaranteed.
IO_AUDIT_MUTEX
Occurs during synchronization of trace event buffers.
IO_COMPLETION
Occurs while waiting for I/O operations to complete. This wait type generally represents non-data page I/Os. Data page I/O completion waits appear as PAGEIOLATCH_* waits.
IO_QUEUE_LIMIT
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
IO_RETRY
Occurs when an I/O operation such as a read or a write to disk fails because of insufficient resources, and is then retried.
IOAFF_RANGE_QUEUE
Identified for informational purposes only. Not supported. Future compatibility isn't guaranteed.
KSOURCE_WAKEUP
Used by the service control task while waiting for requests from the Service Control Manager. Long waits are expected and don't indicate a problem.
KTM_ENLISTMENT
Identified for informational purposes only. Not supported. Future compatibility isn't guaranteed.
KTM_RECOVERY_MANAGER
Identified for informational purposes only. Not supported. Future compatibility isn't guaranteed.
KTM_RECOVERY_RESOLUTION
Identified for informational purposes only. Not supported. Future compatibility isn't guaranteed.
LATCH_DT
Occurs when waiting for a DT (destroy) latch. This doesn't include buffer latches or transaction mark latches. A listing of LATCH_* waits is available in sys.dm_os_latch_stats
. Note that sys.dm_os_latch_stats
groups LATCH_NL, LATCH_SH, LATCH_UP, LATCH_EX, and LATCH_DT waits together.
LATCH_EX
Occurs when waiting for an EX (exclusive) latch. This doesn't include buffer latches or transaction mark latches. A listing of LATCH_* waits is available in sys.dm_os_latch_stats
. Note that sys.dm_os_latch_stats
groups LATCH_NL, LATCH_SH, LATCH_UP, LATCH_EX, and LATCH_DT waits together.
LATCH_KP
Occurs when waiting for a KP (keep) latch. This doesn't include buffer latches or transaction mark latches. A listing of LATCH_* waits is available in sys.dm_os_latch_stats
. Note that sys.dm_os_latch_stats
groups LATCH_NL, LATCH_SH, LATCH_UP, LATCH_EX, and LATCH_DT waits together.
LATCH_NL
Identified for informational purposes only. Not supported. Future compatibility isn't guaranteed.
LATCH_SH
Occurs when waiting for an SH (share) latch. This doesn't include buffer latches or transaction mark latches. A listing of LATCH_* waits is available in sys.dm_os_latch_stats
. Note that sys.dm_os_latch_stats
groups LATCH_NL, LATCH_SH, LATCH_UP, LATCH_EX, and LATCH_DT waits together.
LATCH_UP
Occurs when waiting for an UP (update) latch. This doesn't include buffer latches or transaction mark latches. A listing of LATCH_* waits is available in sys.dm_os_latch_stats
. Note that sys.dm_os_latch_stats
groups LATCH_NL, LATCH_SH, LATCH_UP, LATCH_EX, and LATCH_DT waits together.
LAZYWRITER_SLEEP
Occurs when lazy writer tasks are suspended. This is a measure of the time spent by background tasks that are waiting. Don't consider this state when you are looking for user stalls.
LCK_M_BU
Occurs when a task is waiting to acquire a Bulk Update (BU) lock. For more information, see Bulk Update Locks.
LCK_M_BU_ABORT_BLOCKERS
Occurs when a task is waiting to acquire a Bulk Update (BU) lock with Abort Blockers. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX). For more information, see Bulk Update Locks.
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_BU_LOW_PRIORITY
Occurs when a task is waiting to acquire a Bulk Update (BU) lock with Low Priority. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX). For more information, see Bulk Update Locks.
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_IS
Occurs when a task is waiting to acquire an Intent Shared (IS) lock. For more information, see Intent Locks.
LCK_M_IS_ABORT_BLOCKERS
Occurs when a task is waiting to acquire an Intent Shared (IS) lock with Abort Blockers. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX.) For more information, see Intent Locks.
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_IS_LOW_PRIORITY
Occurs when a task is waiting to acquire an Intent Shared (IS) lock with Low Priority. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX). For more information, see Intent Locks.
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_IU
Occurs when a task is waiting to acquire an Intent Update (IU) lock. For more information, see Intent Locks.
LCK_M_IU_ABORT_BLOCKERS
Occurs when a task is waiting to acquire an Intent Update (IU) lock with Abort Blockers. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX.) For more information, see Intent Locks.
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_IU_LOW_PRIORITY
Occurs when a task is waiting to acquire an Intent Update (IU) lock with Low Priority. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX.). For more information, see Intent Locks.
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_IX
Occurs when a task is waiting to acquire an Intent Exclusive (IX) lock. For more information, see Intent Locks.
LCK_M_IX_ABORT_BLOCKERS
Occurs when a task is waiting to acquire an Intent Exclusive (IX) lock with Abort Blockers. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX). For more information, see Intent Locks.
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_IX_LOW_PRIORITY
Occurs when a task is waiting to acquire an Intent Exclusive (IX) lock with Low Priority. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX). For more information, see Intent Locks.
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_RIn_NL
Occurs when a task is waiting to acquire a NULL lock on the current key value, and an Insert Range lock between the current and previous key. A NULL lock on the key is an instant release lock.
LCK_M_RIn_NL_ABORT_BLOCKERS
Occurs when a task is waiting to acquire a NULL lock with Abort Blockers on the current key value, and an Insert Range lock with Abort Blockers between the current and previous key. A NULL lock on the key is an instant release lock. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX.),
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_RIn_NL_LOW_PRIORITY
Occurs when a task is waiting to acquire a NULL lock with Low Priority on the current key value, and an Insert Range lock with Low Priority between the current and previous key. A NULL lock on the key is an instant release lock. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX.),
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_RIn_S
Occurs when a task is waiting to acquire a shared lock on the current key value, and an Insert Range lock between the current and previous key.
LCK_M_RIn_S_ABORT_BLOCKERS
Occurs when a task is waiting to acquire a shared lock with Abort Blockers on the current key value, and an Insert Range lock with Abort Blockers between the current and previous key. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX.),
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_RIn_S_LOW_PRIORITY
Occurs when a task is waiting to acquire a shared lock with Low Priority on the current key value, and an Insert Range lock with Low Priority between the current and previous key. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX.),
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_RIn_U
Task is waiting to acquire an Update lock on the current key value, and an Insert Range lock between the current and previous key.
LCK_M_RIn_U_ABORT_BLOCKERS
Task is waiting to acquire an Update lock with Abort Blockers on the current key value, and an Insert Range lock with Abort Blockers between the current and previous key. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX.),
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_RIn_U_LOW_PRIORITY
Task is waiting to acquire an Update lock with Low Priority on the current key value, and an Insert Range lock with Low Priority between the current and previous key. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX.),
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_RIn_X
Occurs when a task is waiting to acquire an Exclusive lock on the current key value, and an Insert Range lock between the current and previous key.
LCK_M_RIn_X_ABORT_BLOCKERS
Occurs when a task is waiting to acquire an Exclusive lock with Abort Blockers on the current key value, and an Insert Range lock with Abort Blockers between the current and previous key. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX.),
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_RIn_X_LOW_PRIORITY
Occurs when a task is waiting to acquire an Exclusive lock with Low Priority on the current key value, and an Insert Range lock with Low Priority between the current and previous key. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX.),
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_RS_S
Occurs when a task is waiting to acquire a Shared lock on the current key value, and a Shared Range lock between the current and previous key.
LCK_M_RS_S_ABORT_BLOCKERS
Occurs when a task is waiting to acquire a Shared lock with Abort Blockers on the current key value, and a Shared Range lock with Abort Blockers between the current and previous key. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX.),
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_RS_S_LOW_PRIORITY
Occurs when a task is waiting to acquire a Shared lock with Low Priority on the current key value, and a Shared Range lock with Low Priority between the current and previous key. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX.),
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_RS_U
Occurs when a task is waiting to acquire an Update lock on the current key value, and an Update Range lock between the current and previous key.
LCK_M_RS_U_ABORT_BLOCKERS
Occurs when a task is waiting to acquire an Update lock with Abort Blockers on the current key value, and an Update Range lock with Abort Blockers between the current and previous key. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX.),
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_RS_U_LOW_PRIORITY
Occurs when a task is waiting to acquire an Update lock with Low Priority on the current key value, and an Update Range lock with Low Priority between the current and previous key. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX.),
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_RX_S
Occurs when a task is waiting to acquire a Shared lock on the current key value, and an Exclusive Range lock between the current and previous key.
LCK_M_RX_S_ABORT_BLOCKERS
Occurs when a task is waiting to acquire a Shared lock with Abort Blockers on the current key value, and an Exclusive Range with Abort Blockers lock between the current and previous key. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX.),
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_RX_S_LOW_PRIORITY
Occurs when a task is waiting to acquire a Shared lock with Low Priority on the current key value, and an Exclusive Range with Low Priority lock between the current and previous key. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX.),
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_RX_U
Occurs when a task is waiting to acquire an Update lock on the current key value, and an Exclusive range lock between the current and previous key.
LCK_M_RX_U_ABORT_BLOCKERS
Occurs when a task is waiting to acquire an Update lock with Abort Blockers on the current key value, and an Exclusive range lock with Abort Blockers between the current and previous key. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX.),
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_RX_U_LOW_PRIORITY
Occurs when a task is waiting to acquire an Update lock with Low Priority on the current key value, and an Exclusive range lock with Low Priority between the current and previous key. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX.),
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_RX_X
Occurs when a task is waiting to acquire an Exclusive lock on the current key value, and an Exclusive Range lock between the current and previous key.
LCK_M_RX_X_ABORT_BLOCKERS
Occurs when a task is waiting to acquire an Exclusive lock with Abort Blockers on the current key value, and an Exclusive Range lock with Abort Blockers between the current and previous key. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX.),
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_RX_X_LOW_PRIORITY
Occurs when a task is waiting to acquire an Exclusive lock with Low Priority on the current key value, and an Exclusive Range lock with Low Priority between the current and previous key. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX.),
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_S
Occurs when a task is waiting to acquire a Shared lock. For more information, see Shared Locks.
LCK_M_S_ABORT_BLOCKERS
Occurs when a task is waiting to acquire a Shared lock with Abort Blockers. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX). For more information, see Shared Locks.
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_S_LOW_PRIORITY
Occurs when a task is waiting to acquire a Shared lock with Low Priority. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX). For more information, see Shared Locks.
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_SCH_M
Occurs when a task is waiting to acquire a Schema Modify lock. For more information, see Schema Locks.
LCK_M_SCH_M_ABORT_BLOCKERS
Occurs when a task is waiting to acquire a Schema Modify lock with Abort Blockers. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX). For more information, see Schema Locks.
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_SCH_M_LOW_PRIORITY
Occurs when a task is waiting to acquire a Schema Modify lock with Low Priority. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX). For more information, see Schema Locks.
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_SCH_S
Occurs when a task is waiting to acquire a Schema Share lock. For more information, see Schema Locks.
LCK_M_SCH_S_ABORT_BLOCKERS
Occurs when a task is waiting to acquire a Schema Share lock with Abort Blockers. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX). For more information, see Schema Locks.
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_SCH_S_LOW_PRIORITY
Occurs when a task is waiting to acquire a Schema Share lock with Low Priority. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX) For more information, see Schema Locks.
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_SIU
Occurs when a task is waiting to acquire a Shared With Intent Update lock. For more information, see Intent Locks.
LCK_M_SIU_ABORT_BLOCKERS
Occurs when a task is waiting to acquire a Shared With Intent Update lock with Abort Blockers. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX). For more information, see Intent Locks.
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_SIU_LOW_PRIORITY
Occurs when a task is waiting to acquire a Shared With Intent Update lock with Low Priority. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX). For more information, see Intent Locks.
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_SIX
Occurs when a task is waiting to acquire a Shared With Intent Exclusive lock. For more information, see Intent Locks.
LCK_M_SIX_ABORT_BLOCKERS
Occurs when a task is waiting to acquire a Shared With Intent Exclusive lock with Abort Blockers. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX). For more information, see Intent Locks.
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_SIX_LOW_PRIORITY
Occurs when a task is waiting to acquire a Shared With Intent Exclusive lock with Low Priority. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX). For more information, see Intent Locks.
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_U
Occurs when a task is waiting to acquire an Update lock. For more information, see Update Locks.
LCK_M_U_ABORT_BLOCKERS
Occurs when a task is waiting to acquire an Update lock with Abort Blockers. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX). For more information, see Update Locks.
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_U_LOW_PRIORITY
Occurs when a task is waiting to acquire an Update lock with Low Priority. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX). For more information, see Update Locks.
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_UIX
Occurs when a task is waiting to acquire an Update With Intent Exclusive lock. For more information, see Intent Locks.
LCK_M_UIX_ABORT_BLOCKERS
Occurs when a task is waiting to acquire an Update With Intent Exclusive lock with Abort Blockers. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX). For more information, see Intent Locks.
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_UIX_LOW_PRIORITY
Occurs when a task is waiting to acquire an Update With Intent Exclusive lock with Low Priority. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX). For more information, see Intent Locks.
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_X
Occurs when a task is waiting to acquire an Exclusive lock. For more information, see Exclusive Locks.
LCK_M_X_ABORT_BLOCKERS
Occurs when a task is waiting to acquire an Exclusive lock with Abort Blockers. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX). For more information, see Exclusive Locks.
Applies to: SQL Server 2014 (12.x) and later versions.
LCK_M_X_LOW_PRIORITY
Occurs when a task is waiting to acquire an Exclusive lock with Low Priority. (Related to the low priority wait option of ALTER TABLE and ALTER INDEX). For more information, see Exclusive Locks.
Applies to: SQL Server 2014 (12.x) and later versions.
LOG_POOL_SCAN
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
LOG_RATE_GOVERNOR
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
LOGBUFFER
Occurs when a task is waiting for space in the log buffer to store a log record. Consistently high values may indicate that the log devices can't keep up with the amount of log being generated by the server.
LOGCAPTURE_LOGPOOLTRUNCPOINT
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
LOGGENERATION
Identified for informational purposes only. Not supported. Future compatibility isn't guaranteed.
LOGMGR
Occurs when a task is waiting for any outstanding log I/Os to finish before shutting down the log while closing the database.
LOGMGR_FLUSH
Identified for informational purposes only. Not supported. Future compatibility isn't guaranteed.
LOGMGR_PMM_LOG
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
LOGMGR_QUEUE
Occurs while the log writer task waits for work requests.
LOGMGR_RESERVE_APPEND
Occurs when a task is waiting to see whether log truncation frees up log space to enable the task to write a new log record. Consider increasing the size of the log file(s) for the affected database to reduce this wait.
LOGPOOL_CACHESIZE
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
LOGPOOL_CONSUMER
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
LOGPOOL_CONSUMERSET
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
LOGPOOL_FREEPOOLS
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
LOGPOOL_MGRSET
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
LOGPOOL_REPLACEMENTSET
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
LOGPOOLREFCOUNTEDOBJECT_REFDONE
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
LOWFAIL_MEMMGR_QUEUE
Occurs while waiting for memory to be available for use.
MD_AGENT_YIELD
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
MD_LAZYCACHE_RWLOCK
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
MEMORY_ALLOCATION_EXT
Occurs while allocating memory from either the internal SQL Server memory pool or the operation system.
Applies to: SQL Server 2016 (13.x) and later versions.
MEMORY_GRANT_UPDATE
Internal use only.
Applies to: SQL Server 2017 (14.x) and later versions.
METADATA_LAZYCACHE_RWLOCK
Internal use only.
Applies to: SQL Server 2008 R2 (10.50.x) only.
MIGRATIONBUFFER
Internal use only.
Applies to: SQL Server 2017 (14.x) and later versions.
MISCELLANEOUS
Identified for informational purposes only. Not supported. Future compatibility isn't guaranteed.
MSQL_DQ
Occurs when a task is waiting for a distributed query operation to finish. This is used to detect potential Multiple Active Result Set (MARS) application deadlocks. The wait ends when the distributed query call finishes.
MSQL_XACT_MGR_MUTEX
Occurs when a task is waiting to obtain ownership of the session transaction manager to perform a session level transaction operation.
MSQL_XACT_MUTEX
Occurs during synchronization of transaction usage. A request must acquire the mutex before it can use the transaction.
MSQL_XP
Occurs when a task is waiting for an extended stored procedure to end. SQL Server uses this wait state to detect potential MARS application deadlocks. The wait stops when the extended stored procedure call ends.
MSSEARCH
Occurs during Full-Text Search calls. This wait ends when the full-text operation completes. It doesn't indicate contention, but rather the duration of full-text operations.
NET_WAITFOR_PACKET
Occurs when a connection is waiting for a network packet during a network read.
NETWORKSXMLMGRLOAD
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
NODE_CACHE_MUTEX
Internal use only.
OLEDB
Occurs when SQL Server calls the SNAC OLE DB Provider (SQLNCLI) or the Microsoft OLE DB Driver for SQL Server (MSOLEDBSQL). This wait type isn't used for synchronization. Instead, it indicates the duration of calls to the OLE DB provider.
ONDEMAND_TASK_QUEUE
Occurs while a background task waits for high priority system task requests. Long wait times indicate that there have been no high priority requests to process, and shouldn't cause concern.
PAGEIOLATCH_DT
Occurs when a task is waiting on a latch for a buffer that is in an I/O request. The latch request is in Destroy mode. Long waits may indicate problems with the disk subsystem.
PAGEIOLATCH_EX
Occurs when a task is waiting on a latch for a buffer that is in an I/O request. The latch request is in Exclusive mode - a mode used when the buffer is being written to disk. Long waits may indicate problems with the disk subsystem.
See this SQL Server Slow I/O troubleshooting blog for more information.
PAGEIOLATCH_KP
Occurs when a task is waiting on a latch for a buffer that is in an I/O request. The latch request is in Keep mode. Long waits may indicate problems with the disk subsystem.
PAGEIOLATCH_NL
Identified for informational purposes only. Not supported. Future compatibility isn't guaranteed.
PAGEIOLATCH_SH
Occurs when a task is waiting on a latch for a buffer that is in an I/O request. The latch request is in Shared mode - a mode used when the buffer is being read from disk. Long waits may indicate problems with the disk subsystem.
For more information, see Slow I/O - SQL Server and disk I/O performance.
PAGEIOLATCH_UP
Occurs when a task is waiting on a latch for a buffer that is in an I/O request. The latch request is in Update mode. Long waits may indicate problems with the disk subsystem.
For more information, see Slow I/O - SQL Server and disk I/O performance.
PAGELATCH_DT
Occurs when a task is waiting on a latch for a buffer that isn't in an I/O request. The latch request is in Destroy mode. Destroy mode must be acquired before deleting contents of a page. For more information, see Latch Modes.
PAGELATCH_EX
Occurs when a task is waiting on a latch for a buffer that isn't in an I/O request. The latch request is in Exclusive mode - it blocks other threads from writing to or reading from the page (buffer).
A common scenario that leads to this latch is the "last-page insert" buffer latch contention. To understand and resolve this, use Resolve last-page insert PAGELATCH_EX contention and Diagnose and resolve last-page-insert latch contention on SQL Server. Another scenario is Latch contention on small tables with a non-clustered index and random inserts (queue table).
PAGELATCH_KP
Occurs when a task is waiting on a latch for a buffer that isn't in an I/O request. The latch request is in Keep mode, which prevents the page from being destroyed by another thread. For more information, see Latch Modes.
PAGELATCH_NL
Identified for informational purposes only. Not supported. Future compatibility isn't guaranteed.
PAGELATCH_SH
Occurs when a task is waiting on a latch for a buffer that isn't in an I/O request. The latch request is in Shared mode, which allows multiple threads to read, but not modify, a buffer (page). For more information, see Latch Modes.
PAGELATCH_UP
Occurs when a task is waiting on a latch for a buffer that isn't in an I/O request. The latch request is in Update mode. Commonly this wait type may be observed when a system page (buffer) like PFS, GAM, SGAM is latched. For more information, see Latch Modes.
For troubleshooting a common scenario with this latch, refer to Reduce Allocation Contention in SQL Server tempdb database.
PARALLEL_BACKUP_QUEUE
Occurs when serializing output produced by RESTORE HEADERONLY, RESTORE FILELISTONLY, or RESTORE LABELONLY.
PARALLEL_REDO_DRAIN_WORKER
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
PARALLEL_REDO_FLOW_CONTROL
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
PARALLEL_REDO_LOG_CACHE
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
PARALLEL_REDO_TRAN_LIST
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
PARALLEL_REDO_TRAN_TURN
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
PARALLEL_REDO_WORKER_SYNC
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
PARALLEL_REDO_WORKER_WAIT_WORK
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
PERFORMANCE_COUNTERS_RWLOCK
Internal use only.
PHYSICAL_SEEDING_DMV
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
POOL_LOG_RATE_GOVERNOR
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
PREEMPTIVE_ABR
Identified for informational purposes only. Not supported. Future compatibility isn't guaranteed.
PREEMPTIVE_AUDIT_ACCESS_EVENTLOG
Occurs when the SQL Server Operating System (SQLOS) scheduler switches to preemptive mode to write an audit event to the Windows event log.
Applies to: SQL Server 2008 R2 (10.50.x) only.
PREEMPTIVE_AUDIT_ACCESS_SECLOG
Occurs when the SQLOS scheduler switches to preemptive mode to write an audit event to the Windows Security log.
Applies to: SQL Server 2008 R2 (10.50.x) only.
PREEMPTIVE_CLOSEBACKUPMEDIA
Occurs when the SQLOS scheduler switches to preemptive mode to close backup media.
PREEMPTIVE_CLOSEBACKUPTAPE
Occurs when the SQLOS scheduler switches to preemptive mode to close a tape backup device.
PREEMPTIVE_CLOSEBACKUPVDIDEVICE
Occurs when the SQLOS scheduler switches to preemptive mode to close a virtual backup device.
PREEMPTIVE_CLUSAPI_CLUSTERRESOURCECONTROL
Occurs when the SQLOS scheduler switches to preemptive mode to perform Windows failover cluster operations.
PREEMPTIVE_COM_COCREATEINSTANCE
Occurs when the SQLOS scheduler switches to preemptive mode to create a COM object.
PREEMPTIVE_COM_COGETCLASSOBJECT
Internal use only.
PREEMPTIVE_COM_CREATEACCESSOR
Internal use only.
PREEMPTIVE_COM_DELETEROWS
Internal use only.
PREEMPTIVE_COM_GETCOMMANDTEXT
Internal use only.
PREEMPTIVE_COM_GETDATA
Internal use only.
PREEMPTIVE_COM_GETNEXTROWS
Internal use only.
PREEMPTIVE_COM_GETRESULT
Internal use only.
PREEMPTIVE_COM_GETROWSBYBOOKMARK
Internal use only.
PREEMPTIVE_COM_LBFLUSH
Internal use only.
PREEMPTIVE_COM_LBLOCKREGION
Internal use only.
PREEMPTIVE_COM_LBREADAT
Internal use only.
PREEMPTIVE_COM_LBSETSIZE
Internal use only.
PREEMPTIVE_COM_LBSTAT
Internal use only.
PREEMPTIVE_COM_LBUNLOCKREGION
Internal use only.
PREEMPTIVE_COM_LBWRITEAT
Internal use only.
PREEMPTIVE_COM_QUERYINTERFACE
Internal use only.
PREEMPTIVE_COM_RELEASE
Internal use only.
PREEMPTIVE_COM_RELEASEACCESSOR
Internal use only.
PREEMPTIVE_COM_RELEASEROWS
Internal use only.
PREEMPTIVE_COM_RELEASESESSION
Internal use only.
PREEMPTIVE_COM_RESTARTPOSITION
Internal use only.
PREEMPTIVE_COM_SEQSTRMREAD
Internal use only.
PREEMPTIVE_COM_SEQSTRMREADANDWRITE
Internal use only.
PREEMPTIVE_COM_SETDATAFAILURE
Internal use only.
PREEMPTIVE_COM_SETPARAMETERINFO
Internal use only.
PREEMPTIVE_COM_SETPARAMETERPROPERTIES
Internal use only.
PREEMPTIVE_COM_STRMLOCKREGION
Internal use only.
PREEMPTIVE_COM_STRMSEEKANDREAD
Internal use only.
PREEMPTIVE_COM_STRMSEEKANDWRITE
Internal use only.
PREEMPTIVE_COM_STRMSETSIZE
Internal use only.
PREEMPTIVE_COM_STRMSTAT
Internal use only.
PREEMPTIVE_COM_STRMUNLOCKREGION
Internal use only.
PREEMPTIVE_CONSOLEWRITE
Internal use only.
PREEMPTIVE_CREATEPARAM
Internal use only.
PREEMPTIVE_DEBUG
Internal use only.
PREEMPTIVE_DFSADDLINK
Internal use only.
PREEMPTIVE_DFSLINKEXISTCHECK
Internal use only.
PREEMPTIVE_DFSLINKHEALTHCHECK
Internal use only.
PREEMPTIVE_DFSREMOVELINK
Internal use only.
PREEMPTIVE_DFSREMOVEROOT
Internal use only.
PREEMPTIVE_DFSROOTFOLDERCHECK
Internal use only.
PREEMPTIVE_DFSROOTINIT
Internal use only.
PREEMPTIVE_DFSROOTSHARECHECK
Internal use only.
PREEMPTIVE_DTC_ABORT
Internal use only.
PREEMPTIVE_DTC_ABORTREQUESTDONE
Internal use only.
PREEMPTIVE_DTC_BEGINTRANSACTION
Internal use only.
PREEMPTIVE_DTC_COMMITREQUESTDONE
Internal use only.
PREEMPTIVE_DTC_ENLIST
Internal use only.
PREEMPTIVE_DTC_PREPAREREQUESTDONE
Internal use only.
PREEMPTIVE_FILESIZEGET
Internal use only.
PREEMPTIVE_FSAOLEDB_ABORTTRANSACTION
Internal use only.
PREEMPTIVE_FSAOLEDB_COMMITTRANSACTION
Internal use only.
PREEMPTIVE_FSAOLEDB_STARTTRANSACTION
Internal use only.
PREEMPTIVE_FSRECOVER_UNCONDITIONALUNDO
Internal use only.
PREEMPTIVE_GETRMINFO
Internal use only.
PREEMPTIVE_HADR_LEASE_MECHANISM
Always On Availability Groups lease manager scheduling for Microsoft Support diagnostics.
Applies to: SQL Server 2012 (11.x) and later versions.
PREEMPTIVE_HTTP_EVENT_WAIT
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
PREEMPTIVE_HTTP_REQUEST
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
PREEMPTIVE_LOCKMONITOR
Internal use only.
PREEMPTIVE_MSS_RELEASE
Internal use only.
PREEMPTIVE_ODBCOPS
Internal use only.
PREEMPTIVE_OLE_UNINIT
Internal use only.
PREEMPTIVE_OLEDB_ABORTORCOMMITTRAN
Internal use only.
PREEMPTIVE_OLEDB_ABORTTRAN
Internal use only.
PREEMPTIVE_OLEDB_GETDATASOURCE
Internal use only.
PREEMPTIVE_OLEDB_GETLITERALINFO
Internal use only.
PREEMPTIVE_OLEDB_GETPROPERTIES
Internal use only.
PREEMPTIVE_OLEDB_GETPROPERTYINFO
Internal use only.
PREEMPTIVE_OLEDB_GETSCHEMALOCK
Internal use only.
PREEMPTIVE_OLEDB_JOINTRANSACTION
Internal use only.
PREEMPTIVE_OLEDB_RELEASE
Internal use only.
PREEMPTIVE_OLEDB_SETPROPERTIES
Internal use only.
PREEMPTIVE_OLEDBOPS
Internal use only.
PREEMPTIVE_OS_ACCEPTSECURITYCONTEXT
Internal use only.
PREEMPTIVE_OS_ACQUIRECREDENTIALSHANDLE
Internal use only.
PREEMPTIVE_OS_AUTHENTICATIONOPS
Internal use only.
PREEMPTIVE_OS_AUTHORIZATIONOPS
Internal use only.
PREEMPTIVE_OS_AUTHZGETINFORMATIONFROMCONTEXT
Internal use only.
PREEMPTIVE_OS_AUTHZINITIALIZECONTEXTFROMSID
Internal use only.
PREEMPTIVE_OS_AUTHZINITIALIZERESOURCEMANAGER
Internal use only.
PREEMPTIVE_OS_BACKUPREAD
Internal use only.
PREEMPTIVE_OS_CLOSEHANDLE
Internal use only.
PREEMPTIVE_OS_CLUSTEROPS
Internal use only.
PREEMPTIVE_OS_COMOPS
Internal use only.
PREEMPTIVE_OS_COMPLETEAUTHTOKEN
Internal use only.
PREEMPTIVE_OS_COPYFILE
Internal use only.
PREEMPTIVE_OS_CREATEDIRECTORY
Internal use only.
PREEMPTIVE_OS_CREATEFILE
Internal use only.
PREEMPTIVE_OS_CRYPTACQUIRECONTEXT
Internal use only.
PREEMPTIVE_OS_CRYPTIMPORTKEY
Internal use only.
PREEMPTIVE_OS_CRYPTOPS
Internal use only.
PREEMPTIVE_OS_DECRYPTMESSAGE
Internal use only.
PREEMPTIVE_OS_DELETEFILE
Internal use only.
PREEMPTIVE_OS_DELETESECURITYCONTEXT
Internal use only.
PREEMPTIVE_OS_DEVICEIOCONTROL
Internal use only.
PREEMPTIVE_OS_DEVICEOPS
Internal use only.
PREEMPTIVE_OS_DIRSVC_NETWORKOPS
Internal use only.
PREEMPTIVE_OS_DISCONNECTNAMEDPIPE
Internal use only.
PREEMPTIVE_OS_DOMAINSERVICESOPS
Internal use only.
PREEMPTIVE_OS_DSGETDCNAME
Internal use only.
PREEMPTIVE_OS_DTCOPS
Internal use only.
PREEMPTIVE_OS_ENCRYPTMESSAGE
Internal use only.
PREEMPTIVE_OS_FILEOPS
Internal use only.
PREEMPTIVE_OS_FINDFILE
Internal use only.
PREEMPTIVE_OS_FLUSHFILEBUFFERS
Internal use only.
PREEMPTIVE_OS_FORMATMESSAGE
Internal use only.
PREEMPTIVE_OS_FREECREDENTIALSHANDLE
Internal use only.
PREEMPTIVE_OS_FREELIBRARY
Internal use only.
PREEMPTIVE_OS_GENERICOPS
Internal use only.
PREEMPTIVE_OS_GETADDRINFO
Internal use only.
PREEMPTIVE_OS_GETCOMPRESSEDFILESIZE
Internal use only.
PREEMPTIVE_OS_GETDISKFREESPACE
Internal use only.
PREEMPTIVE_OS_GETFILEATTRIBUTES
Internal use only.
PREEMPTIVE_OS_GETFILESIZE
Internal use only.
PREEMPTIVE_OS_GETFINALFILEPATHBYHANDLE
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
PREEMPTIVE_OS_GETLONGPATHNAME
Internal use only.
PREEMPTIVE_OS_GETPROCADDRESS
Internal use only.
PREEMPTIVE_OS_GETVOLUMENAMEFORVOLUMEMOUNTPOINT
Internal use only.
PREEMPTIVE_OS_GETVOLUMEPATHNAME
Internal use only.
PREEMPTIVE_OS_INITIALIZESECURITYCONTEXT
Internal use only.
PREEMPTIVE_OS_LIBRARYOPS
Internal use only.
PREEMPTIVE_OS_LOADLIBRARY
Internal use only.
PREEMPTIVE_OS_LOGONUSER
Internal use only.
PREEMPTIVE_OS_LOOKUPACCOUNTSID
Internal use only.
PREEMPTIVE_OS_MESSAGEQUEUEOPS
Internal use only.
PREEMPTIVE_OS_MOVEFILE
Internal use only.
PREEMPTIVE_OS_NETGROUPGETUSERS
Internal use only.
PREEMPTIVE_OS_NETLOCALGROUPGETMEMBERS
Internal use only.
PREEMPTIVE_OS_NETUSERGETGROUPS
Internal use only.
PREEMPTIVE_OS_NETUSERGETLOCALGROUPS
Internal use only.
PREEMPTIVE_OS_NETUSERMODALSGET
Internal use only.
PREEMPTIVE_OS_NETVALIDATEPASSWORDPOLICY
Internal use only.
PREEMPTIVE_OS_NETVALIDATEPASSWORDPOLICYFREE
Internal use only.
PREEMPTIVE_OS_OPENDIRECTORY
Internal use only.
PREEMPTIVE_OS_PDH_WMI_INIT
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
PREEMPTIVE_OS_PIPEOPS
Internal use only.
PREEMPTIVE_OS_PROCESSOPS
Internal use only.
PREEMPTIVE_OS_QUERYCONTEXTATTRIBUTES
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
PREEMPTIVE_OS_QUERYREGISTRY
Internal use only.
PREEMPTIVE_OS_QUERYSECURITYCONTEXTTOKEN
Internal use only.
PREEMPTIVE_OS_REMOVEDIRECTORY
Internal use only.
PREEMPTIVE_OS_REPORTEVENT
Internal use only.
PREEMPTIVE_OS_REVERTTOSELF
Internal use only.
PREEMPTIVE_OS_RSFXDEVICEOPS
Internal use only.
PREEMPTIVE_OS_SECURITYOPS
Internal use only.
PREEMPTIVE_OS_SERVICEOPS
Internal use only.
PREEMPTIVE_OS_SETENDOFFILE
Internal use only.
PREEMPTIVE_OS_SETFILEPOINTER
Internal use only.
PREEMPTIVE_OS_SETFILEVALIDDATA
Internal use only.
PREEMPTIVE_OS_SETNAMEDSECURITYINFO
Internal use only.
PREEMPTIVE_OS_SQLCLROPS
Internal use only.
PREEMPTIVE_OS_SQMLAUNCH
Internal use only.
Applies to: SQL Server 2008 R2 (10.50.x) through SQL Server 2016 (13.x).
PREEMPTIVE_OS_VERIFYSIGNATURE
Internal use only.
PREEMPTIVE_OS_VERIFYTRUST
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
PREEMPTIVE_OS_VSSOPS
Internal use only.
PREEMPTIVE_OS_WAITFORSINGLEOBJECT
Internal use only.
PREEMPTIVE_OS_WINSOCKOPS
Internal use only.
PREEMPTIVE_OS_WRITEFILE
Internal use only.
PREEMPTIVE_OS_WRITEFILEGATHER
Internal use only.
PREEMPTIVE_OS_WSASETLASTERROR
Internal use only.
PREEMPTIVE_REENLIST
Internal use only.
PREEMPTIVE_RESIZELOG
Internal use only.
PREEMPTIVE_ROLLFORWARDREDO
Internal use only.
PREEMPTIVE_ROLLFORWARDUNDO
Internal use only.
PREEMPTIVE_SB_STOPENDPOINT
Internal use only.
PREEMPTIVE_SERVER_STARTUP
Internal use only.
PREEMPTIVE_SETRMINFO
Internal use only.
PREEMPTIVE_SHAREDMEM_GETDATA
Internal use only.
PREEMPTIVE_SNIOPEN
Internal use only.
PREEMPTIVE_SOSHOST
Internal use only.
PREEMPTIVE_SOSTESTING
Identified for informational purposes only. Not supported. Future compatibility isn't guaranteed.
PREEMPTIVE_SP_SERVER_DIAGNOSTICS
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
PREEMPTIVE_STARTRM
Internal use only.
PREEMPTIVE_STREAMFCB_CHECKPOINT
Internal use only.
PREEMPTIVE_STREAMFCB_RECOVER
Internal use only.
PREEMPTIVE_STRESSDRIVER
Identified for informational purposes only. Not supported. Future compatibility isn't guaranteed.
PREEMPTIVE_TESTING
Identified for informational purposes only. Not supported. Future compatibility isn't guaranteed.
PREEMPTIVE_TRANSIMPORT
Internal use only.
PREEMPTIVE_UNMARSHALPROPAGATIONTOKEN
Internal use only.
PREEMPTIVE_VSS_CREATESNAPSHOT
Internal use only.
PREEMPTIVE_VSS_CREATEVOLUMESNAPSHOT
Internal use only.
PREEMPTIVE_XE_CALLBACKEXECUTE
Internal use only.
PREEMPTIVE_XE_CX_FILE_OPEN
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
PREEMPTIVE_XE_CX_HTTP_CALL
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
PREEMPTIVE_XE_DISPATCHER
Internal use only.
PREEMPTIVE_XE_ENGINEINIT
Internal use only.
PREEMPTIVE_XE_GETTARGETSTATE
Internal use only.
PREEMPTIVE_XE_SESSIONCOMMIT
Internal use only.
PREEMPTIVE_XE_TARGETFINALIZE
Internal use only.
PREEMPTIVE_XE_TARGETINIT
Internal use only.
PREEMPTIVE_XE_TIMERRUN
Internal use only.
PREEMPTIVE_XETESTING
Identified for informational purposes only. Not supported. Future compatibility isn't guaranteed.
PRINT_ROLLBACK_PROGRESS
Used to wait while user processes are ended in a database that has been transitioned by using the ALTER DATABASE termination clause. For more information, see ALTER DATABASE (Transact-SQL).
PRU_ROLLBACK_DEFERRED
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
PWAIT_ALL_COMPONENTS_INITIALIZED
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
PWAIT_COOP_SCAN
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
PWAIT_DIRECTLOGCONSUMER_GETNEXT
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
PWAIT_EVENT_SESSION_INIT_MUTEX
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
PWAIT_FABRIC_REPLICA_CONTROLLER_DATA_LOSS
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
PWAIT_HADR_ACTION_COMPLETED
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
PWAIT_HADR_CHANGE_NOTIFIER_TERMINATION_SYNC
Occurs when a background task is waiting for the termination of the background task that receives (via polling) Windows Server Failover Clustering notifications.
Applies to: SQL Server 2012 (11.x) and later versions.
PWAIT_HADR_CLUSTER_INTEGRATION
An append, replace, and/or remove operation is waiting to grab a write lock on an Always On internal list (such as a list of networks, network addresses, or availability group listeners). Internal use only,
Applies to: SQL Server 2012 (11.x) and later versions.
PWAIT_HADR_FAILOVER_COMPLETED
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
PWAIT_HADR_JOIN
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
PWAIT_HADR_OFFLINE_COMPLETED
An Always On drop availability group operation is waiting for the target availability group to go offline before destroying Windows Server Failover Clustering objects.
Applies to: SQL Server 2012 (11.x) and later versions.
PWAIT_HADR_ONLINE_COMPLETED
An Always On create or failover availability group operation is waiting for the target availability group to come online.
Applies to: SQL Server 2012 (11.x) and later versions.
PWAIT_HADR_POST_ONLINE_COMPLETED
An Always On drop availability group operation is waiting for the termination of any background task that was scheduled as part of a previous command. For example, there may be a background task that is transitioning availability databases to the primary role. The DROP AVAILABILITY GROUP DDL must wait for this background task to terminate in order to avoid race conditions.
Applies to: SQL Server 2012 (11.x) and later versions.
PWAIT_HADR_SERVER_READY_CONNECTIONS
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
PWAIT_HADR_WORKITEM_COMPLETED
Internal wait by a thread waiting for an async work task to complete. This is an expected wait and is for CSS use.
Applies to: SQL Server 2012 (11.x) and later versions.
PWAIT_HADRSIM
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
PWAIT_LOG_CONSOLIDATION_IO
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
PWAIT_LOG_CONSOLIDATION_POLL
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
PWAIT_MD_LOGIN_STATS
Occurs during internal synchronization in metadata on login stats.
Applies to: SQL Server 2012 (11.x) and later versions.
PWAIT_MD_RELATION_CACHE
Occurs during internal synchronization in metadata on table or index.
Applies to: SQL Server 2012 (11.x) and later versions.
PWAIT_MD_SERVER_CACHE
Occurs during internal synchronization in metadata on linked servers.
Applies to: SQL Server 2012 (11.x) and later versions.
PWAIT_MD_UPGRADE_CONFIG
Occurs during internal synchronization in upgrading server wide configurations.
Applies to: SQL Server 2012 (11.x) and later versions.
PWAIT_PREEMPTIVE_APP_USAGE_TIMER
Internal use only.
Applies to: SQL Server 2017 (14.x) and later versions.
PWAIT_PREEMPTIVE_AUDIT_ACCESS_WINDOWSLOG
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
PWAIT_QRY_BPMEMORY
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
PWAIT_REPLICA_ONLINE_INIT_MUTEX
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
PWAIT_RESOURCE_SEMAPHORE_FT_PARALLEL_QUERY_SYNC
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
PWAIT_SBS_FILE_OPERATION
Internal use only.
Applies to: SQL Server 2017 (14.x) and later versions.
PWAIT_XTP_FSSTORAGE_MAINTENANCE
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
PWAIT_XTP_HOST_STORAGE_WAIT
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
QDS_ASYNC_CHECK_CONSISTENCY_TASK
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
QDS_ASYNC_PERSIST_TASK
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
QDS_ASYNC_PERSIST_TASK_START
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
QDS_ASYNC_QUEUE
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
QDS_BCKG_TASK
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
QDS_BLOOM_FILTER
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
QDS_CLEANUP_STALE_QUERIES_TASK_MAIN_LOOP_SLEEP
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
QDS_CTXS
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
QDS_DB_DISK
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
QDS_DYN_VECTOR
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
QDS_EXCLUSIVE_ACCESS
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
QDS_HOST_INIT
Internal use only.
Applies to: SQL Server 2017 (14.x) and later versions.
QDS_LOADDB
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
QDS_PERSIST_TASK_MAIN_LOOP_SLEEP
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
QDS_QDS_CAPTURE_INIT
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
QDS_SHUTDOWN_QUEUE
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
QDS_STMT
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
QDS_STMT_DISK
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
QDS_TASK_SHUTDOWN
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
QDS_TASK_START
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
QE_WARN_LIST_SYNC
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
QPJOB_KILL
Indicates that an asynchronous automatic statistics update was canceled by a call to KILL as the update was starting to run. The terminating thread is suspended, waiting for it to start listening for KILL commands. A good value is less than one second.
QPJOB_WAITFOR_ABORT
Indicates that an asynchronous automatic statistics update was canceled by a call to KILL when it was running. The update has now completed but is suspended until the terminating thread message coordination is complete. This is an ordinary but rare state, and should be very short. A good value is less than one second.
QRY_MEM_GRANT_INFO_MUTEX
Occurs when Query Execution memory management tries to control access to static grant information list. This state lists information about the current granted and waiting memory requests. This state is a simple access control state. There should never be a long wait on this state. If this mutex isn't released, all new memory-using queries will stop responding.
QRY_PARALLEL_THREAD_MUTEX
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
QRY_PROFILE_LIST_MUTEX
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
QUERY_ERRHDL_SERVICE_DONE
Identified for informational purposes only. Not supported.
Applies to: SQL Server 2008 R2 (10.50.x) only.
QUERY_WAIT_ERRHDL_SERVICE
Identified for informational purposes only. Not supported.
Applies to: SQL Server 2008 R2 (10.50.x) only.
QUERY_EXECUTION_INDEX_SORT_EVENT_OPEN
Occurs in certain cases when offline create index build is run in parallel, and the different worker threads that are sorting synchronize access to the sort files.
QUERY_NOTIFICATION_MGR_MUTEX
Occurs during synchronization of the garbage collection queue in the Query Notification Manager.
QUERY_NOTIFICATION_SUBSCRIPTION_MUTEX
Occurs during state synchronization for transactions in Query Notifications.
QUERY_NOTIFICATION_TABLE_MGR_MUTEX
Occurs during internal synchronization within the Query Notification Manager.
QUERY_NOTIFICATION_UNITTEST_MUTEX
Identified for informational purposes only. Not supported. Future compatibility isn't guaranteed.
QUERY_OPTIMIZER_PRINT_MUTEX
Occurs during synchronization of query optimizer diagnostic output production. This wait type only occurs if diagnostic settings have been enabled under direction of Microsoft Product Support.
QUERY_TASK_ENQUEUE_MUTEX
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
QUERY_TRACEOUT
Identified for informational purposes only. Not supported. Future compatibility isn't guaranteed.
RBIO_WAIT_VLF
Internal use only.
Applies to: SQL Server 2017 (14.x) and later versions.
RBIO_RG_STORAGE
Occurs when a Hyperscale database compute node is being throttled due to delayed log consumption at the page server(s).
Applies to: Azure SQL Database Hyperscale.
RBIO_RG_DESTAGE
Occurs when a Hyperscale database compute node is being throttled due to delayed log consumption by the long term log storage.
Applies to: Azure SQL Database Hyperscale.
RBIO_RG_REPLICA
Occurs when a Hyperscale database compute node is being throttled due to delayed log consumption by the readable secondary replica node(s).
Applies to: Azure SQL Database Hyperscale.
RBIO_RG_LOCALDESTAGE
Occurs when a Hyperscale database compute node is being throttled due to delayed log consumption by the log service.
Applies to: Azure SQL Database Hyperscale.
RECOVER_CHANGEDB
Occurs during synchronization of database status in warm standby database.
RECOVERY_MGR_LOCK
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
REDO_THREAD_PENDING_WORK
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
REDO_THREAD_SYNC
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
REMOTE_BLOCK_IO
Internal use only.
Applies to: SQL Server 2017 (14.x) and later versions.
REMOTE_DATA_ARCHIVE_MIGRATION_DMV
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
REMOTE_DATA_ARCHIVE_SCHEMA_DMV
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
REMOTE_DATA_ARCHIVE_SCHEMA_TASK_QUEUE
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
REPL_CACHE_ACCESS
Occurs during synchronization on a replication article cache. During these waits, the replication log reader stalls, and data definition language (DDL) statements on a published table are blocked.
REPL_HISTORYCACHE_ACCESS
Internal use only.
REPL_SCHEMA_ACCESS
Occurs during synchronization of replication schema version information. This state exists when DDL statements are executed on the replicated object, and when the log reader builds or consumes versioned schema based on DDL occurrence. Contention can be seen on this wait type if you have many published databases on a single publisher with transactional replication and the published databases are very active.
REPL_TRANFSINFO_ACCESS
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
REPL_TRANHASHTABLE_ACCESS
Internal use only.
REPL_TRANTEXTINFO_ACCESS
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
REPLICA_WRITES
Occurs while a task waits for completion of page writes to database snapshots or DBCC replicas.
REQUEST_DISPENSER_PAUSE
Occurs when a task is waiting for all outstanding I/O to complete, so that I/O to a file can be frozen for snapshot backup.
REQUEST_FOR_DEADLOCK_SEARCH
Occurs while the deadlock monitor waits to start the next deadlock search. This wait is expected between deadlock detections, and lengthy total waiting time on this resource doesn't indicate a problem.
RESERVED_MEMORY_ALLOCATION_EXT
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
RESMGR_THROTTLED
Occurs when a new request comes in and is throttled based on the GROUP_MAX_REQUESTS setting.
RESOURCE_GOVERNOR_IDLE
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
RESOURCE_QUEUE
Occurs during synchronization of various internal resource queues.
RESOURCE_SEMAPHORE
Occurs when a query memory request during query execution can't be granted immediately due to other concurrent queries. High waits and wait times may indicate excessive number of concurrent queries, or excessive memory request amounts. Excessive waits of this type may raise SQL error 8645, "A time out occurred while waiting for memory resources to execute the query. Rerun the query."
For detailed information and troubleshooting ideas on memory grant waits, see Troubleshoot slow performance or low memory issues caused by memory grants in SQL Server.
RESOURCE_SEMAPHORE_MUTEX
Occurs while a query waits for its request for a thread reservation to be fulfilled. It also occurs when synchronizing query compile and memory grant requests.
RESOURCE_SEMAPHORE_QUERY_COMPILE
Occurs when the number of concurrent query compilations reaches a throttling limit. High waits and wait times may indicate excessive compilations, recompiles, or uncacheable plans.
RESOURCE_SEMAPHORE_SMALL_QUERY
Occurs when memory request by a small query can't be granted immediately due to other concurrent queries. Wait time shouldn't exceed more than a few seconds, because the server transfers the request to the main query memory pool if it fails to grant the requested memory within a few seconds. High waits may indicate an excessive number of concurrent small queries while the main memory pool is blocked by waiting queries.
Applies to: SQL Server 2008 R2 (10.50.x) only.
RESTORE_FILEHANDLECACHE_ENTRYLOCK
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
RESTORE_FILEHANDLECACHE_LOCK
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
RG_RECONFIG
Internal use only.
ROWGROUP_OP_STATS
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
ROWGROUP_VERSION
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
RTDATA_LIST
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
SATELLITE_CARGO
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
SATELLITE_SERVICE_SETUP
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
SATELLITE_TASK
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
SBS_DISPATCH
Internal use only.
Applies to: SQL Server 2017 (14.x) and later versions.
SBS_RECEIVE_TRANSPORT
Internal use only.
Applies to: SQL Server 2017 (14.x) and later versions.
SBS_TRANSPORT
Internal use only.
Applies to: SQL Server 2017 (14.x) and later versions.
SCAN_CHAR_HASH_ARRAY_INITIALIZATION
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
SEC_DROP_TEMP_KEY
Occurs after a failed attempt to drop a temporary security key before a retry attempt.
SECURITY_CNG_PROVIDER_MUTEX
Internal use only.
Applies to: SQL Server 2017 (14.x) and later versions.
SECURITY_CRYPTO_CONTEXT_MUTEX
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
SECURITY_DBE_STATE_MUTEX
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
SECURITY_KEYRING_RWLOCK
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
SECURITY_MUTEX
Occurs when there is a wait for mutexes that control access to the global list of Extensible Key Management (EKM) cryptographic providers and the session-scoped list of EKM sessions.
SECURITY_RULETABLE_MUTEX
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
SEMPLAT_DSI_BUILD
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
SEQUENCE_GENERATION
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
SEQUENTIAL_GUID
Occurs while a new sequential GUID is being obtained.
SERVER_IDLE_CHECK
Occurs during synchronization of SQL Server instance idle status when a resource monitor is attempting to declare a SQL Server instance as idle or trying to wake up.
SERVER_RECONFIGURE
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
SESSION_WAIT_STATS_CHILDREN
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
SHARED_DELTASTORE_CREATION
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
SHUTDOWN
Occurs while a shutdown statement waits for active connections to exit.
SLEEP_BPOOL_FLUSH
Occurs when a checkpoint is throttling the issuance of new I/Os in order to avoid flooding the disk subsystem.
SLEEP_BUFFERPOOL_HELPLW
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
SLEEP_DBSTARTUP
Occurs during database startup while waiting for all databases to recover.
SLEEP_DCOMSTARTUP
Occurs once at most during SQL Server instance startup while waiting for DCOM initialization to complete.
SLEEP_MASTERDBREADY
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
SLEEP_MASTERMDREADY
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
SLEEP_MASTERUPGRADED
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
SLEEP_MEMORYPOOL_ALLOCATEPAGES
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
SLEEP_MSDBSTARTUP
Occurs when SQL Trace waits for the msdb
database to complete startup.
SLEEP_RETRY_VIRTUALALLOC
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
SLEEP_SYSTEMTASK
Occurs during the start of a background task while waiting for tempdb
to complete startup.
SLEEP_TASK
Occurs when a task sleeps while waiting for a generic event to occur.
SLEEP_TEMPDBSTARTUP
Occurs while a task waits for tempdb
to complete startup.
SLEEP_WORKSPACE_ALLOCATEPAGE
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
SLO_UPDATE
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
SMSYNC
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
SNI_CONN_DUP
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
SNI_CRITICAL_SECTION
Occurs during internal synchronization within SQL Server networking components.
SNI_HTTP_WAITFOR_0_DISCON
Occurs during SQL Server shutdown, while waiting for outstanding HTTP connections to exit.
SNI_LISTENER_ACCESS
Occurs while waiting for non-uniform memory access (NUMA) nodes to update state change. Access to state change is serialized.
SNI_TASK_COMPLETION
Occurs when there is a wait for all tasks to finish during a NUMA node state change.
SNI_WRITE_ASYNC
Internal use only.
Applies to: SQL Server 2017 (14.x) and later versions.
SOAP_READ
Occurs while waiting for an HTTP network read to complete.
SOAP_WRITE
Occurs while waiting for an HTTP network write to complete.
SOCKETDUPLICATEQUEUE_CLEANUP
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
SOS_CALLBACK_REMOVAL
Occurs while performing synchronization on a callback list in order to remove a callback. It isn't expected for this counter to change after server initialization is completed.
SOS_DISPATCHER_MUTEX
Occurs during internal synchronization of the dispatcher pool. This includes when the pool is being adjusted.
SOS_LOCALALLOCATORLIST
Occurs during internal synchronization in the SQL Server memory manager.
Applies to: SQL Server 2008 R2 (10.50.x) only.
SOS_MEMORY_TOPLEVELBLOCKALLOCATOR
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
SOS_MEMORY_USAGE_ADJUSTMENT
Occurs when memory usage is being adjusted among pools.
SOS_OBJECT_STORE_DESTROY_MUTEX
Occurs during internal synchronization in memory pools when destroying objects from the pool.
SOS_PHYS_PAGE_CACHE
Accounts for the time a thread waits to acquire the mutex it must acquire before it allocates physical pages or before it returns those pages to the operating system. Waits on this type only appear if the instance of SQL Server uses AWE memory.
Applies to: SQL Server 2012 (11.x) and later versions.
SOS_PROCESS_AFFINITY_MUTEX
Occurs during synchronizing of access to process affinity settings.
SOS_RESERVEDMEMBLOCKLIST
Occurs during internal synchronization in the SQL Server Memory Manager.
Applies to: SQL Server 2008 R2 (10.50.x) only.
SOS_SCHEDULER_YIELD
Occurs when a task voluntarily yields the scheduler for other tasks to execute. During this wait, the task is waiting in a runnable queue for its quantum to be renewed, that is, waiting to be scheduled to run on the CPU again. Prolonged waits on this wait type most frequently indicate opportunities to optimize queries that perform index or table scans. Focus on plan regression, missing index, stats updates, and query rewrites. Optimizing runtimes reduces the need for tasks to be yielding multiple times. If query times for such CPU-consuming tasks are acceptable, then this wait type is expected and can be ignored.
SOS_SMALL_PAGE_ALLOC
Occurs during the allocation and freeing of memory that is managed by some memory objects.
SOS_STACKSTORE_INIT_MUTEX
Occurs during synchronization of internal store initialization.
SOS_SYNC_TASK_ENQUEUE_EVENT
Occurs when a task is started in a synchronous manner. Most tasks in SQL Server are started in an asynchronous manner, in which control returns to the starter immediately after the task request has been placed on the work queue.
SOS_VIRTUALMEMORY_LOW
Occurs when a memory allocation waits for a Resource Manager to free up virtual memory.
SOSHOST_EVENT
Occurs when a hosted component, such as CLR, waits on a SQL Server event synchronization object.
SOSHOST_INTERNAL
Occurs during synchronization of memory manager callbacks used by hosted components, such as CLR.
SOSHOST_MUTEX
Occurs when a hosted component, such as CLR, waits on a SQL Server mutex synchronization object.
SOSHOST_RWLOCK
Occurs when a hosted component, such as CLR, waits on a SQL Server reader-writer synchronization object.
SOSHOST_SEMAPHORE
Occurs when a hosted component, such as CLR, waits on a SQL Server semaphore synchronization object.
SOSHOST_SLEEP
Occurs when a hosted task sleeps while waiting for a generic event to occur. Hosted tasks are used by hosted components such as CLR.
SOSHOST_TRACELOCK
Occurs during synchronization of access to trace streams.
SOSHOST_WAITFORDONE
Occurs when a hosted component, such as CLR, waits for a task to complete.
SP_PREEMPTIVE_SERVER_DIAGNOSTICS_SLEEP
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
SP_SERVER_DIAGNOSTICS_BUFFER_ACCESS
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
SP_SERVER_DIAGNOSTICS_INIT_MUTEX
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
SP_SERVER_DIAGNOSTICS_SLEEP
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
SQLCLR_APPDOMAIN
Occurs while CLR waits for an application domain to complete startup.
SQLCLR_ASSEMBLY
Occurs while waiting for access to the loaded assembly list in the appdomain.
SQLCLR_DEADLOCK_DETECTION
Occurs while CLR waits for deadlock detection to complete.
SQLCLR_QUANTUM_PUNISHMENT
Occurs when a CLR task is throttled because it has exceeded its execution quantum. This throttling is done in order to reduce the effect of this resource-intensive task on other tasks.
SQLSORT_NORMMUTEX
Occurs during internal synchronization, while initializing internal sorting structures.
SQLSORT_SORTMUTEX
Occurs during internal synchronization, while initializing internal sorting structures.
SQLTRACE_BUFFER_FLUSH
Occurs when a task is waiting for a background task to flush trace buffers to disk every four seconds.
Applies to: SQL Server 2008 R2 (10.50.x) only.
SQLTRACE_FILE_BUFFER
Occurs during synchronization on trace buffers during a file trace.
Applies to: SQL Server 2012 (11.x) and later versions.
SQLTRACE_FILE_READ_IO_COMPLETION
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
SQLTRACE_FILE_WRITE_IO_COMPLETION
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
SQLTRACE_INCREMENTAL_FLUSH_SLEEP
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
SQLTRACE_LOCK
Internal use only.
Applies to: SQL Server 2008 R2 (10.50.x) only.
SQLTRACE_PENDING_BUFFER_WRITERS
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
SQLTRACE_SHUTDOWN
Occurs while trace shutdown waits for outstanding trace events to complete.
SQLTRACE_WAIT_ENTRIES
Occurs while a SQL Trace event queue waits for packets to arrive on the queue.
SRVPROC_SHUTDOWN
Occurs while the shutdown process waits for internal resources to be released to shut down cleanly.
STARTUP_DEPENDENCY_MANAGER
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
TDS_BANDWIDTH_STATE
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
TDS_INIT
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
TDS_PROXY_CONTAINER
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
TEMPOBJ
Occurs when temporary object drops are synchronized. This wait is rare, and only occurs if a task has requested exclusive access for temp table drops.
TEMPORAL_BACKGROUND_PROCEED_CLEANUP
Internal use only.
Applies to: SQL Server 2017 (14.x) and later versions.
TERMINATE_LISTENER
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
THREADPOOL
Occurs when a task (query or login/logout) is waiting for a worker thread to execute it. This can indicate that the maximum worker thread setting is misconfigured, or that, most commonly, batch executions are taking unusually long, thus reducing the number of worker threads available to satisfy other batches. Examine the performance of batches (queries) and reduce query duration by either reducing bottlenecks (blocking, parallelism, I/O, latch waits), or providing proper indexing or query design.
TIMEPRIV_TIMEPERIOD
Occurs during internal synchronization of the Extended Events timer.
TRACE_EVTNOTIF
Internal use only.
TRACEWRITE
Occurs when the SQL Trace rowset trace provider waits for either a free buffer or a buffer with events to process.
TRAN_MARKLATCH_DT
Occurs when waiting for a destroy mode latch on a transaction mark latch. Transaction mark latches are used for synchronization of commits with marked transactions.
TRAN_MARKLATCH_EX
Occurs when waiting for an exclusive mode latch on a marked transaction. Transaction mark latches are used for synchronization of commits with marked transactions.
TRAN_MARKLATCH_KP
Occurs when waiting for a keep mode latch on a marked transaction. Transaction mark latches are used for synchronization of commits with marked transactions.
TRAN_MARKLATCH_NL
Identified for informational purposes only. Not supported. Future compatibility isn't guaranteed.
TRAN_MARKLATCH_SH
Occurs when waiting for a shared mode latch on a marked transaction. Transaction mark latches are used for synchronization of commits with marked transactions.
TRAN_MARKLATCH_UP
Occurs when waiting for an update mode latch on a marked transaction. Transaction mark latches are used for synchronization of commits with marked transactions.
TRANSACTION_MUTEX
Occurs during synchronization of access to a transaction by multiple batches.
UCS_ENDPOINT_CHANGE
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
UCS_MANAGER
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
UCS_MEMORY_NOTIFICATION
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
UCS_SESSION_REGISTRATION
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
UCS_TRANSPORT
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
UCS_TRANSPORT_STREAM_CHANGE
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
UTIL_PAGE_ALLOC
Occurs when transaction log scans wait for memory to be available during memory pressure.
VDI_CLIENT_COMPLETECOMMAND
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
VDI_CLIENT_GETCOMMAND
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
VDI_CLIENT_OPERATION
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
VDI_CLIENT_OTHER
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
VERSIONING_COMMITTING
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
VIA_ACCEPT
Occurs when a Virtual Interface Adapter (VIA) provider connection is completed during startup.
VIEW_DEFINITION_MUTEX
Occurs during synchronization on access to cached view definitions.
WAIT_FOR_RESULTS
Occurs when waiting for a query notification to be triggered.
WAIT_ON_SYNC_STATISTICS_REFRESH
Occurs when waiting for synchronous statistics update to complete before query compilation and execution can resume.
Applies to: Starting with SQL Server 2019 (15.x)
WAIT_SCRIPTDEPLOYMENT_REQUEST
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
WAIT_SCRIPTDEPLOYMENT_WORKER
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
WAIT_XLOGREAD_SIGNAL
Internal use only.
Applies to: SQL Server 2017 (14.x) and later versions.
WAIT_XTP_ASYNC_TX_COMPLETION
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
WAIT_XTP_CKPT_AGENT_WAKEUP
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
WAIT_XTP_CKPT_CLOSE
Occurs when waiting for a checkpoint to complete.
Applies to: SQL Server 2014 (12.x) and later versions.
WAIT_XTP_CKPT_ENABLED
Occurs when checkpointing is disabled, and waiting for checkpointing to be enabled.
Applies to: SQL Server 2014 (12.x) and later versions.
WAIT_XTP_CKPT_STATE_LOCK
Occurs when synchronizing checking of checkpoint state.
Applies to: SQL Server 2014 (12.x) and later versions.
WAIT_XTP_COMPILE_WAIT
Internal use only.
Applies to: SQL Server 2017 (14.x) and later versions.
WAIT_XTP_GUEST
Occurs when the database memory allocator needs to stop receiving low-memory notifications.
Applies to: SQL Server 2012 (11.x) and later versions.
WAIT_XTP_HOST_WAIT
Occurs when waits are triggered by the database engine and implemented by the host.
Applies to: SQL Server 2014 (12.x) and later versions.
WAIT_XTP_OFFLINE_CKPT_BEFORE_REDO
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
WAIT_XTP_OFFLINE_CKPT_LOG_IO
Occurs when offline checkpoint is waiting for a log read IO to complete.
Applies to: SQL Server 2014 (12.x) and later versions.
WAIT_XTP_OFFLINE_CKPT_NEW_LOG
Occurs when offline checkpoint is waiting for new log records to scan.
Applies to: SQL Server 2014 (12.x) and later versions.
WAIT_XTP_PROCEDURE_ENTRY
Occurs when a drop procedure is waiting for all current executions of that procedure to complete.
Applies to: SQL Server 2014 (12.x) and later versions.
WAIT_XTP_RECOVERY
Occurs when database recovery is waiting for recovery of memory-optimized objects to finish.
Applies to: SQL Server 2014 (12.x) and later versions.
WAIT_XTP_SERIAL_RECOVERY
Internal use only.
Applies to: SQL Server 2017 (14.x) and later versions.
WAIT_XTP_SWITCH_TO_INACTIVE
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
WAIT_XTP_TASK_SHUTDOWN
Occurs when waiting for an In-Memory OLTP thread to complete.
Applies to: SQL Server 2012 (11.x) and later versions.
WAIT_XTP_TRAN_DEPENDENCY
Occurs when waiting for transaction dependencies.
Applies to: SQL Server 2014 (12.x) and later versions.
WAITFOR
Occurs as a result of a WAITFOR Transact-SQL statement. The duration of the wait is determined by the parameters to the statement. This is a user-initiated wait.
WAITFOR_PER_QUEUE
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
WAITFOR_TASKSHUTDOWN
Identified for informational purposes only. Not supported. Future compatibility isn't guaranteed.
WAITSTAT_MUTEX
Occurs during synchronization of access to the collection of statistics used to populate sys.dm_os_wait_stats
.
Identified for informational purposes only. Not supported. Future compatibility isn't guaranteed.
WINDOW_AGGREGATES_MULTIPASS
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
WINFAB_API_CALL
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
WINFAB_REPLICA_BUILD_OPERATION
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
WINFAB_REPORT_FAULT
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
WORKTBL_DROP
Occurs while pausing before retrying, after a failed worktable drop.
WRITE_COMPLETION
Occurs when a write operation is in progress.
WRITELOG
Occurs while waiting for a log flush to complete. Common operations that cause log flushes are transaction commits and checkpoints. Common reasons for long waits on WRITELOG are: disk latency (where transaction log files reside), the inability for I/O to keep up with transactions, or, a large number of transaction log operations and flushes (commits, rollback)
XACT_OWN_TRANSACTION
Occurs while waiting to acquire ownership of a transaction.
XACT_RECLAIM_SESSION
Occurs while waiting for the current owner of a session to release ownership of the session.
XACTLOCKINFO
Occurs during synchronization of access to the list of locks for a transaction. In addition to the transaction itself, the list of locks is accessed by operations such as deadlock detection and lock migration during page splits.
XACTWORKSPACE_MUTEX
Occurs during synchronization of defections from a transaction, as well as the number of database locks between enlist members of a transaction.
XDB_CONN_DUP_HASH
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
XDES_HISTORY
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
XDES_OUT_OF_ORDER_LIST
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
XDES_SNAPSHOT
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
XDESTSVERMGR
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
XE_BUFFERMGR_ALLPROCESSED_EVENT
Occurs when Extended Events session buffers are flushed to targets. This wait occurs on a background thread.
XE_BUFFERMGR_FREEBUF_EVENT
Occurs when either of the following conditions is true:
XE_CALLBACK_LIST
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
XE_CX_FILE_READ
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
XE_DISPATCHER_CONFIG_SESSION_LIST
Occurs when an Extended Events session that is using asynchronous targets is started or stopped. This wait indicates either of the following:
- An Extended Events session is registering with a background thread pool.
- The background thread pool is calculating the required number of threads based on current load.
XE_DISPATCHER_JOIN
Occurs when a background thread that is used for Extended Events sessions is terminating.
XE_DISPATCHER_WAIT
Occurs when a background thread that is used for Extended Events sessions is waiting for event buffers to process.
XE_FILE_TARGET_TVF
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
XE_LIVE_TARGET_TVF
Internal use only.
Applies to: SQL Server 2012 (11.x) and later versions.
XE_MODULEMGR_SYNC
Identified for informational purposes only. Not supported. Future compatibility isn't guaranteed.
XE_OLS_LOCK
Identified for informational purposes only. Not supported. Future compatibility isn't guaranteed.
XE_PACKAGE_LOCK_BACKOFF
Identified for informational purposes only. Not supported.
Applies to: SQL Server 2008 R2 (10.50.x) only.
XE_SERVICES_EVENTMANUAL
Internal use only.
XE_SERVICES_MUTEX
Internal use only.
XE_SERVICES_RWLOCK
Internal use only.
XE_SESSION_CREATE_SYNC
Internal use only.
XE_SESSION_FLUSH
Internal use only.
XE_SESSION_SYNC
Internal use only.
XE_STM_CREATE
Internal use only.
XE_TIMER_EVENT
Internal use only.
XE_TIMER_MUTEX
Internal use only.
XE_TIMER_TASK_DONE
Internal use only.
XIO_CREDENTIAL_MGR_RWLOCK
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
XIO_CREDENTIAL_RWLOCK
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
XIO_EDS_MGR_RWLOCK
Internal use only.
Applies to: SQL Server 2017 (14.x) and later versions.
XIO_EDS_RWLOCK
Internal use only.
Applies to: SQL Server 2017 (14.x) and later versions.
XIO_IOSTATS_BLOBLIST_RWLOCK
Internal use only.
Applies to: SQL Server 2017 (14.x) and later versions.
XIO_IOSTATS_FCBLIST_RWLOCK
Internal use only.
Applies to: SQL Server 2017 (14.x) and later versions.
XIO_LEASE_RENEW_MGR_RWLOCK
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
XTP_HOST_DB_COLLECTION
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
XTP_HOST_LOG_ACTIVITY
Internal use only.
Applies to: SQL Server 2014 (12.x) and later versions.
XTP_HOST_PARALLEL_RECOVERY
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
XTP_PREEMPTIVE_TASK
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
XTP_TRUNCATION_LSN
Internal use only.
Applies to: SQL Server 2016 (13.x) and later versions.
XTPPROC_CACHE_ACCESS
Occurs when for accessing all natively compiled stored procedure cache objects.
Applies to: SQL Server 2014 (12.x) and later versions.
XTPPROC_PARTITIONED_STACK_CREATE
Occurs when allocating per-NUMA node natively compiled stored procedure cache structures (must be done single threaded) for a given procedure.
Applies to: SQL Server 2012 (11.x) and later versions.
The following XEvents are related to partition SWITCH
and online index rebuild. For information about syntax, see ALTER TABLE (Transact-SQL) and ALTER INDEX (Transact-SQL).
lock_request_priority_state
process_killed_by_abort_blockers
ddl_with_wait_at_low_priority
For a lock compatibility matrix, see sys.dm_tran_locks (Transact-SQL).
See also
SQL Server Operating System Related Dynamic Management Views (Transact-SQL)
sys.dm_exec_session_wait_stats (Transact-SQL)
sys.dm_db_wait_stats (Azure SQL Database)
sys.dm_os_sys_info (Transact-SQL)
不敢表白的椰子 · On-the-fly machine learned force fields for the study of warm dense matter: Application to diffusion 1 月前 |
玉树临风的乌冬面 · 萧山九中正式更名为杭州市钱塘高级中学 1 月前 |
飘逸的小熊猫 · 錄製Podcast的常見問題與解決方法 4 月前 |
率性的黄瓜 · 夜里十大禁用app入口-乐乐手游网 5 月前 |