SQL DBA Blog: Home

  • SHUTDOWN Wait Type in SQL Server

    SHUTDOWN is recorded when a SHUTDOWN statement is waiting for active connections to exit, specifically when the shutdown request is blocked behind queries being run by connections with sysadmin-level (sa) access. A graceful shutdown wants running work to complete; while it waits, the initiating thread sits here. If SQL Server “will not shut down”, at…

    read more

  • SLEEP_BPOOL_FLUSH Wait Type in SQL Server

    SLEEP_BPOOL_FLUSH is recorded when the checkpoint process deliberately pauses issuing new writes because it detects it is saturating the I/O subsystem (around 20ms average write latency during normal operation, 100ms during shutdown). Checkpoint backs off for a few milliseconds, lets in-flight writes land, then resumes. It is self-throttling by design: checkpoint being a considerate neighbour…

    read more

  • SLEEP_BPOOL_STEAL and Buffer Pool Memory Wait Types in SQL Server

    Three sleep waits share the theme of “no free memory right now, nap and retry”, and this page covers them together: Individually benign; collectively a memory-pressure gauge. Are They a Problem? Occasional traces, no. A rising trend, yes, in the informative sense: these waits increasing means threads are routinely finding the free list empty, which…

    read more

  • SLEEP_DBSTARTUP and Startup Sleep Wait Types in SQL Server

    Three sleep waits measure phases of instance startup, and this page covers them together: They fire once per startup and then go quiet until the next one. Are They a Problem? Not as waits; they are startup phase markers on the benign filter list. Their value is forensic: SLEEP_DBSTARTUP‘s total after a restart tells you…

    read more

  • SNI_CRITICAL_SECTION Wait Type in SQL Server

    SNI_CRITICAL_SECTION is recorded when a thread waits for a critical section inside the SQL Server Network Interface (SNI), the layer that encapsulates TDS packets and talks to clients over the configured transports. Processing communication packets involves shared structures, and threads take brief turns through their guards. Connection-handling plumbing, active on every instance that has clients.…

    read more

  • SNI_TASK_COMPLETION Wait Type in SQL Server

    SNI_TASK_COMPLETION is recorded when a thread waits for tasks to finish during a NUMA node state change, specifically around creating a new SNI network listener after a NUMA node comes online. SQL Server distributes connection listeners across NUMA nodes, and topology changes mean listener work. NUMA node state changes are rare events (startup, hot-add scenarios,…

    read more

  • SOS_DISPATCHER_MUTEX Wait Type in SQL Server

    SOS_DISPATCHER_MUTEX is recorded when a thread waits for the critical section inside the generic dispatcher-pool management code, including when a pool is being adjusted (grown or shrunk). Dispatcher pools are the special-purpose thread pools used by the backup subsystem, In-Memory OLTP, and Extended Events; their management operations serialise here. It pairs with DISPATCHER_QUEUE_SEMAPHORE (idle pool…

    read more

  • SOS_MEMORY_TOPLEVELBLOCKALLOCATOR Wait Type in SQL Server

    SOS_MEMORY_TOPLEVELBLOCKALLOCATOR is recorded when a thread waits for the critical section inside the memory allocator that steals memory from the buffer pool, the path used when components need large memory blocks that come out of the buffer pool’s share. One thread at a time gets to run that allocation code; bursts of large allocations queue…

    read more

  • SOS_PHYS_PAGE_CACHE Wait Type in SQL Server

    SOS_PHYS_PAGE_CACHE is a wait on the mutex a thread must hold before allocating physical memory pages from Windows or returning them. It shows up on instances using locked pages in memory, that is, when the service account holds the SeLockMemoryPrivilege right (Lock Pages in Memory), because that allocation path goes through this guarded cache. Seeing…

    read more

  • SOS_SCHEDULER_YIELD Wait Type in SQL Server

    Part of the SQL Server Wait Types Library SQL Server uses a cooperative scheduling model. Rather than relying on the OS to preempt threads, SQL Server threads voluntarily yield the CPU at natural checkpoints after roughly 4ms of execution. When a thread yields, it moves to the runnable queue and waits for the scheduler to…

    read more