SQL DBA Blog: Home

  • DISPATCHER_QUEUE_SEMAPHORE Wait Type in SQL Server

    DISPATCHER_QUEUE_SEMAPHORE is recorded by threads in a dispatcher pool, a special-purpose thread pool some subsystems maintain separately from the main worker pool, while they wait for work to arrive. Known users of dispatcher pools include the backup subsystem, In-Memory OLTP’s storage engine components, and Extended Events dispatching. Idle pool threads waiting at the queue is…

    read more

  • DBA Scripts: Get Table Sizes

    Part of the DBA-Tools Project. Walk onto a new SQL Server instance and the first honest question is usually “where’s all the space going.” Not at the database level, sys.master_files answers that in seconds, but at the table level, inside a database that’s grown for years without anyone tracking which objects are actually driving the…

    read more

  • DIRTY_PAGE_TABLE_LOCK Wait Type in SQL Server

    DIRTY_PAGE_TABLE_LOCK is recorded when a thread waits for access to the list of dirty pages on an Availability Group readable secondary, contended between parallel redo threads (which update it as they apply log) and read queries (which consult it to see consistent data). It is one of the structural costs of reading from a replica…

    read more

  • DIRTY_PAGE_POLL Wait Type in SQL Server

    DIRTY_PAGE_POLL is recorded by the background task that supports indirect checkpoints while it sleeps between polls looking for dirty pages (modified pages in the buffer pool that need writing to disk). It wakes roughly every 100 milliseconds, checks for work, and goes back to sleep, clocking this wait the entire time it sleeps. A timer…

    read more

  • DBMIRRORING_CMD Wait Type in SQL Server

    DBMIRRORING_CMD is recorded when a thread waits for various database mirroring configuration and state change operations to complete, a bucket that includes waiting on log flushes within the mirroring machinery. Books Online notes this wait is expected to be held for long periods, and mirrored instances routinely show many of them. It is broad mirroring…

    read more

  • DBMIRROR_WORKER_QUEUE Wait Type in SQL Server

    DBMIRROR_WORKER_QUEUE is recorded when a database mirroring worker task waits for more work to be assigned. Mirroring keeps a small crew of workers per session, and when the mirrored database is quiet, generating no log to ship or apply, the workers idle in this wait, sometimes for very long stretches. The mirroring worker pool’s bench…

    read more

  • DBMIRROR_SEND Wait Type in SQL Server

    DBMIRROR_SEND is a database mirroring wait recorded when a task must wait for the network communications backlog to clear before it can send mirroring messages. The mirroring session is generating log faster than the network layer can push it to the partner, so senders queue. If you still run database mirroring (it has been deprecated…

    read more

  • DBMIRROR_EVENTS_QUEUE Wait Type in SQL Server

    DBMIRROR_EVENTS_QUEUE is recorded by the main database mirroring thread while it waits for events to process. It only exists where database mirroring is configured, and on a quiet principal the individual waits can run very long, because there is simply nothing for the mirroring machinery to react to. The mirroring engine’s front desk, waiting for…

    read more

  • 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…

    read more

  • 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;…

    read more