Category: Wait Types

  • DBMIRROR_DBM_MUTEX Wait Type in SQL Server

    DBMIRROR_DBM_MUTEX is a database mirroring wait that occurs only on the mirror server, when a thread waits for parallel threads that are replaying (redoing) log records on the mirror database. It is synchronisation inside the mirror’s redo machinery, the threads coordinating who applies what. If you see it on an instance, that instance is acting…

  • DAC_INIT Wait Type in SQL Server

    DAC_INIT is recorded while the TDS listener for the Dedicated Admin Connection (DAC) initialises at instance startup. The DAC is the emergency side door: a reserved connection with its own scheduler and resources that lets an administrator connect to an otherwise unresponsive instance to diagnose and kill whatever is wedging it. One initialisation per startup;…

  • CXSYNC_PORT Wait Type in SQL Server

    CXSYNC_PORT is the second of the parallelism waits split out of CXPACKET for Azure SQL Database and SQL Server 2022. It is recorded when parallel plan threads wait to open, close, and synchronise exchange iterator ports, the connection points through which producer threads hand rows to consumer threads. A long-running blocking operator, a big sort…

  • CXSYNC_CONSUMER Wait Type in SQL Server

    CXSYNC_CONSUMER is one of the newer parallelism waits, recorded when consumer threads in a parallel plan wait to reach an exchange iterator synchronisation point. It first appeared in Azure SQL Database and Managed Instance and arrived on-premises with SQL Server 2022, where it was split out of CXPACKET (together with CXSYNC_PORT) to make parallel plan…

  • CXROWSET_SYNC Wait Type in SQL Server

    CXROWSET_SYNC is a wait recorded during a parallel range scan, when a worker thread needs exclusive access to the scan’s shared parent rowset to coordinate with the other child threads. In a parallel scan, threads grab ranges of pages from a shared structure as they finish their previous range; this wait is the brief queue…

  • COMMIT_TABLE Wait Type in SQL Server

    COMMIT_TABLE is recorded when a thread waits for access to the in-memory portion of the hidden commit table (sys.syscommittab) that underpins Change Tracking. Every transaction that modifies a change-tracked table adds a row to this structure, and the storage engine touches it from several directions: transaction commits, checkpoints, and the periodic automatic cleanup that trims…

  • COLUMNSTORE_BUILD_THROTTLE Wait Type in SQL Server

    COLUMNSTORE_BUILD_THROTTLE Wait Type in SQL Server COLUMNSTORE_BUILD_THROTTLE is recorded when the parallel threads of a columnstore index build wait for the first segment to be built by a single thread. The design is deliberate: the memory grant estimate for a columnstore build assumes segments of a million rows, so SQL Server builds the first segment…

  • CMEMTHREAD Wait Type in SQL Server

    CMEMTHREAD means workers are waiting for a memory object that is protected by a synchronisation primitive inside the engine. In plain terms, many threads want the same internal memory structure at the same time, and they queue. This wait is usually a concurrency pattern problem, not a disk problem. It often appears with heavy parallel…

  • CMEMPARTITIONED Wait Type in SQL Server

    CMEMPARTITIONED is a wait for access to a thread-safe partitioned memory object. It is the sibling of CMEMTHREAD: when a shared memory object becomes a contention point, SQL Server can partition it by node or by CPU so threads mostly touch their local partition. CMEMTHREAD is contention on an unpartitioned object; CMEMPARTITIONED is the (much…

  • CLR_SEMAPHORE Wait Type in SQL Server

    CLR_SEMAPHORE is recorded when a task executing CLR code waits to acquire a semaphore, one of the synchronisation primitives CLR threads use to gate access to limited resources. Like its sibling CLR_AUTO_EVENT, it comes with the territory of CLR integration being active, whether through user assemblies or the engine’s own internal CLR usage. Most instances…