Preemptive waits can measure work outside SQL Server cooperative scheduling. A customer asked about their increase during a health check.
Spinlock in SQL Server: What It Is and How to Read One
A spinlock in SQL Server is a very short lock on an internal structure, and a thread that waits for it keeps spinning on the CPU instead of sleeping. This post explains how a spinlock differs from a latch and a lock. It reads sys.dm_os_spinlock_stats, measures a ten second window and lists the Extended Events that report backoffs.
SQL SERVER – What is Latch?
What is Latch protection in SQL Server was a reader question after my scheduler video. A latch provides short-lived internal synchronization.
SQL SERVER – SQLOS Scheduler and the Process States
I strongly suggest that you first watch it before we continue on today’s topic of SQLOS Scheduler and the Process States.
Execution Plan Wait Stats: Read Them in SSMS and XML
Execution plan wait stats list what one execution of a query waited for, so you don’t have to guess from server-wide totals. This post shows where to find them in SSMS and in the plan XML, reproduces a lock wait with two query windows, and explains the common wait types. It ends with Query Store, which keeps wait totals for many queries.
QDS_LOADDB Wait: Slow Startup and Query Store Load
A QDS_LOADDB wait means a database waits for Query Store to load its data at startup. This post reads the wait, checks the size of a store, explains the trace flag that loads Query Store asynchronously, and shows the settings that keep a store small.
Metadata Contention in TempDB: When Memory-Optimized Metadata Helps
Metadata contention in TempDB happens when many sessions create and drop temporary tables at the same moment. This post reads the waits that point to it, explains why RESOURCE_SEMAPHORE is a different problem, and shows how SQL Server 2019 and later can keep that metadata in memory.







