TechnologyThe ProfessorAdvanced
SQL Server Engine Tuning, a free technology course on Tomo

SQL Server Engine Tuning

Pinpoint SQL Server bottlenecks under high concurrency by profiling wait statistics, eliminating memory grant spills, resolving latch contention, and stabilizing query optimizer regressions.

Like Duolingo, but for SQL Server Engine Tuning. Tomo turns the whole topic into a game you play five minutes a day, until it actually sticks.

A short one: 12 levels across 2 sections, about 24 minutes end to end, roughly 5 days at five minutes a day. It moves through Execution Triage and Resource Bottlenecks and Concurrency Internals and Plan Stability.

12 bite-size levelsAbout 5 minutes each

Free forever · No credit card · iPhone & Android

Sammy the Server-Hound, the guide who teaches the SQL Server Engine Tuning course
SQL Server Engine Tuning
with Sammy the Server-Hound
12
Levels
2
Sections
5
Min/day
What you'll learn

Key ideas in SQL Server Engine Tuning

  • Signal wait time represents time spent waiting on the SOS scheduler runnable queue after a resource has been granted
  • A signal wait percentage exceeding 10–15% across an instance signals severe CPU scheduler exhaustion rather than external storage or lock bottlenecks
  • Resource wait time equals wait_time_ms minus signal_wait_time_ms and measures the actual duration blocked waiting on I/O, latches, or locks
  • Correlating sys.dm_exec_requests.plan_handle with sys.dm_exec_query_plan extracts the graphical XML plan of the active inflight statement
  • statement_start_offset and statement_end_offset slice sys.dm_exec_sql_text to identify the exact sub-query currently running inside a batch or stored procedure
  • Cross-referencing blocking_session_id identifies the head blocker even when the blocking query itself shows status = 'sleeping'
  • ASYNC_NETWORK_IO occurs when SQL Server fills its output network buffers and halts execution waiting for the client application to fetch and acknowledge rowsets
  • Common root causes include unbuffered row-by-row (RBAR) fetching in application code, client-side serialization, or requesting massive unpaged result sets
  • Physical network link saturation accounts for a negligible fraction of ASYNC_NETWORK_IO occurrences in enterprise environments
  • Starting in SQL Server 2016 SP2 and 2017 CU3, CXCONSUMER separates benign idle consumer threads from producer thread stalls
  • A dominance of CXCONSUMER alongside CXPACKET indicates normal, expected parallel synchronization where consumer threads wait for row distribution, not severe thread skew
  • True, problematic parallelism skew presents when CXPACKET remains high while CXCONSUMER is minimal, pointing to uneven row distribution, skewed data, or bad cost thresholds
  • Spinlocks are lightweight, busy-wait synchronization primitives executed in user mode that burn active CPU cycles on a core without yielding the scheduler
  • Spinlock contention typically produces near-100% CPU utilization without corresponding spikes in traditional wait statistics like LCK_* or PAGEIOLATCH_*
  • Specific spinlocks like LOCK_HASH or MUTEX spike under extreme multi-core concurrent cache insertions, tempdb allocation contention, or high-throughput ad-hoc plan compilation
  • SQL Server allocates query workspace memory from a designated pool that forces new queries requiring workspace memory into RESOURCE_SEMAPHORE waits when saturated
Why not just Google it

You've tried the other tabs

Wikipedia

Thirty open tabs. Four facts you actually kept.

YouTube

You watched. You nodded. By Sunday it was gone.

ChatGPT

One answer, then back to scrolling.

Online courses

Eight weeks. You meant to finish. You didn't.

Tomo gives SQL Server Engine Tuning the Duolingo treatment: levels, streaks, and quick quizzes that test what you just learned. That game loop is what the tabs above never had, so it's the one you actually finish.

Try a question

Here's what playing it feels like

A real question from this course. Take your best guess.

Pinpointing Bottlenecks with Core DMVs

Across your instance, signal wait time accounts for 38% of total wait time. What does this threshold tell you?

Get it right to open this lesson and 11 more in the app.

Course map

Where SQL Server Engine Tuning takes you

  1. 1

    Execution Triage and Resource Bottlenecks

    • Triaging Bottlenecks via Dynamic Management Views
    • Diagnosing Memory Grants and TempDB Spills
  2. 2

    Concurrency Internals and Plan Stability

    • Mitigating Latches, Locks, and Isolation Side-Effects
    • Stabilizing Optimizer Plans and Cache Behavior

2 sections · 4 units · 12 levels. Built to play, not to enroll.

New

Tomo is in ChatGPT

Tomo is also a ChatGPT plugin: the same playable courses, built and played inside your chat.

Add Tomo to ChatGPT
How it's taught

You pick the voice

This course
The Professor

SQL Server Engine Tuning is taught in the The Professor style: clear, structured, thorough. Want a different feel? In the app you can spin up the same topic in any of Tomo's teaching styles. Same facts, totally different vibe.

Keep going

More Technology on Tomo

Start free

Start SQL Server Engine Tuning today.

Download Tomo, search SQL Server Engine Tuning, and play your first lesson in under a minute.