What is SQL Server internal query execution thread scheduling (SOS Scheduler) and how does it manage CPU?
Updated May 17, 2026
Short answer
SOS Scheduler manages CPU execution for SQL Server workers using cooperative scheduling and run queues per scheduler.
Deep explanation
SQL Server uses the SQLOS layer, where SOS Scheduler is responsible for distributing CPU time across worker threads. Each scheduler corresponds roughly to a CPU core and maintains runnable queues. SQL Server uses cooperative scheduling, meaning threads voluntarily yield CPU via SOS_YIELD rather than being preempted frequently. When a worker is running, it executes until it hits a yield point (like waiting on IO, lock, or quantum expiration). If workers overload a scheduler, you see SOS_SCHEDULER_YIELD waits.…
Unlock with a Pro subscription to view this section.
View pricingReal-world example
No real-world example available yet.
Unlock with a Pro subscription to view this section.
Upgrade to ProCommon mistakes
No common mistakes listed yet.
Unlock with a Pro subscription to view this section.
Upgrade to ProFollow-up questions
No follow-up questions available yet.
Unlock with a Pro subscription to view this section.
Upgrade to Pro