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…
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…
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…
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…
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.…
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,…
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…
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…
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…
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…
Always On Availability Groups (4) Auditing (7) Backups (5) Blocking Locking (6) Collectors (7) Database Backups & Recovery (8) Database Backups and Recovery (5) Database Maintenance (7) DBA Tools (24) Disk Space (5) Extended Events (8) Features (6) High Availability (6) Indexes (7) Installation (7) Instance (3) Inventory (6) Jobs (3) Maintenance (6) Migration (13) Monitoring (24) Performance (21) Performance Troubleshooting (9) PowerShell (4) Queries (3) Query Behaviour (5) Security (7) SQL Agent (5) SQL Scripts (17) SQL Server Administration (10) SQL Server Configuration (7) SQL Server Errors (5) SQL Server High Availability (4) SQL Server Internals (3) SQL Server Management Studio (SSMS) (6) SQL Server Monitoring (7) SQL Server Networking (9) SQL Server Security (7) Storage and Capacity (7) T-SQL (9) Temp DB (3) Tracing (7) Transaction Logs (4) Troubleshooting (14) Windows Server (4)