Module 01: Triage, waits and concurrency
The first week gives you the method you will use for the rest of the course, in one free Saturday class. You watch a slow server being diagnosed and fixed and run the same evidence queries on your own lab. You then learn to read the live workload with DMVs and community tools, classify bottlenecks with wait statistics, and diagnose blocking and deadlocks.
Topics covered
- Class 1 (free trial class), part 1: Find and fix a slow server
- Class objective: See an evidence-first investigation from symptom to measured fix. Instructor-led content: Introductions. Symptom, scope, time window and impact. The method: baseline, evidence, hypothesis, change, measurement, rollback. Separating query, concurrency, storage and capacity problems. Hands-on work: Run the provided DMV and wait queries against a slow lab workload. Find the top query, apply one fix and measure before and after. Student deliverable: Before-and-after measurement of one fix. Between-class practice: Capture a baseline of your lab under a controlled workload.
- Class 1 (free trial class), part 2: DMVs, live workload visibility and community tools
- Class objective: Read the current workload state quickly and reliably. Instructor-led content: dm_exec_requests, dm_exec_sessions and query text. Active transactions and resource use. Sampling caveats. sp_WhoIsActive and the First Responder Kit, and what they read underneath. Hands-on work: Identify the top active requests. Capture query text, wait type and resource use with DMVs and with sp_WhoIsActive. Student deliverable: Live workload worksheet. Between-class practice: Build a reusable DMV script.
- Class 1 (free trial class), part 3: Wait statistics and bottleneck classification
- Class objective: Classify where SQL Server spends its time. Instructor-led content: Instance waits vs. query waits. CPU, I/O, lock, memory and parallelism categories. Why waits without context mislead. Hands-on work: Generate controlled waits. Classify the likely resource. Student deliverable: Wait analysis report. Between-class practice: Record waits before and after a change.
- Class 1 (free trial class), part 4: Blocking, deadlocks and isolation trade-offs
- Class objective: Diagnose concurrency incidents and choose the right isolation level. Instructor-led content: Head blockers and open transactions. Deadlock graphs and the categories of fixes. Read committed snapshot: the benefit and its tempdb cost. Lock escalation. Hands-on work: Create blocking and deadlock scenarios. Capture evidence with DMVs and Extended Events. Test the same workload with and without row versioning. Student deliverable: Concurrency incident report. Between-class practice: Recommend fixes that don't rely on killing sessions.
Practical work
You fix a slow query and measure the result, then capture a baseline of your lab. You build a reusable live-diagnosis script, classify controlled waits and test the same workload with and without row versioning.

