Courses by Date
2020-07-20: TSQL for Beginners (Redgate University)
2019-06-29: The Idempotent TSQL SQLChallenge (28 minutes)
2019-05-07: Who Made That Schema Change? An Event Notification SQLChallenge (27 minutes)
2019-04-09: Who Made That Schema Change? A DDL Trigger SQLChallenge (28 minutes)
2019-03-12: A Query Writing SQLChallenge: The Most Unique Names (23 minutes)
2019-02-12: A Dynamic SQLChallenge (32 minutes)
2019-01-30: Tune the 'Peak Years' Procedure - SQLChallenge (52 minutes)
2018-08-15: Tuning a Stored Procedure - SQLChallenge (1 hour 10 minutes)
2018-08-14: How to Decode Memory Pressure (4 hours)
2018-07-16: Deduplicate Indexes - Level 1 SQLChallenge (56 minutes)
2018-06-18: How to Decipher CXPACKET Waits and Control Parallelism (4 hours)
2018-06-18: XEvents SQLChallenge: Create an Extended Events Trace (55 minutes)
2018-06-03: Index Design SQLChallenge - One Year Wonders (50 minutes)
2018-05-30: Learn Indexing by Solving Problems (7 hours 23 minutes)
2018-05-25: Read Committed Snapshot and Snapshot Isolation (46 minutes)
2018-05-11: Speed Up the "Popular Names" Query SQLChallenge (46 minutes)
2018-05-10: Snapshot Isolation Against Availability Group Secondaries (28 minutes)
2018-05-10: Read Committed is Bonkers - Webcast Recording (46 minutes)
2018-04-20: Forcing Parallelism SQLChallenge (48 minutes)
2018-03-11: Why Table Partitioning Does Not Speed Up Query Performance - With One Exception (52 minutes)
2018-02-23: Auto Tuning with Automatic Plan Correction in Query Store (1 hour 8 minutes)
2018-02-17: Defuse the Deadlock SQLChallenge (23 minutes)
2018-02-01: The Dirty Secrets of NOLOCK (50 minutes)
2018-01-12: How Index Keys and Includes Work (1 hour)
2017-12-18: The Case of the Slow Temp Table: A Performance Tuning Problem (50 minutes)
2017-12-15: Repeatable Read and Serializable Isolation Levels (45 minutes)
2017-12-08: Indexing for Windowing Functions (45 minutes)
2017-07-16: Execution Plans: Partitioned Tables and Columnstore Indexes (1 hour 30 minutes)
2017-07-10: SQL Server Management Studio Shortcuts and Secrets (1 hour 30 minutes)
2017-06-26: Why Creating an Index Can Slow Down a Query (1 hour 30 minutes)
2017-04-10: Query Tuning with Hints & Optimizer Hotfixes (2 hours 15 minutes)
2017-02-18: Problem Queries in Table Partitioning (1 hour 30 minutes)
2016-10-18: Troubleshooting Blocking and Deadlocks for Beginners (2 hours 10 minutes)
2019-06-29: The Idempotent TSQL SQLChallenge (28 minutes)
2019-05-07: Who Made That Schema Change? An Event Notification SQLChallenge (27 minutes)
2019-04-09: Who Made That Schema Change? A DDL Trigger SQLChallenge (28 minutes)
2019-03-12: A Query Writing SQLChallenge: The Most Unique Names (23 minutes)
2019-02-12: A Dynamic SQLChallenge (32 minutes)
2019-01-30: Tune the 'Peak Years' Procedure - SQLChallenge (52 minutes)
2018-08-15: Tuning a Stored Procedure - SQLChallenge (1 hour 10 minutes)
2018-08-14: How to Decode Memory Pressure (4 hours)
2018-07-16: Deduplicate Indexes - Level 1 SQLChallenge (56 minutes)
2018-06-18: How to Decipher CXPACKET Waits and Control Parallelism (4 hours)
2018-06-18: XEvents SQLChallenge: Create an Extended Events Trace (55 minutes)
2018-06-03: Index Design SQLChallenge - One Year Wonders (50 minutes)
2018-05-30: Learn Indexing by Solving Problems (7 hours 23 minutes)
2018-05-25: Read Committed Snapshot and Snapshot Isolation (46 minutes)
2018-05-11: Speed Up the "Popular Names" Query SQLChallenge (46 minutes)
2018-05-10: Snapshot Isolation Against Availability Group Secondaries (28 minutes)
2018-05-10: Read Committed is Bonkers - Webcast Recording (46 minutes)
2018-04-20: Forcing Parallelism SQLChallenge (48 minutes)
2018-03-11: Why Table Partitioning Does Not Speed Up Query Performance - With One Exception (52 minutes)
2018-02-23: Auto Tuning with Automatic Plan Correction in Query Store (1 hour 8 minutes)
2018-02-17: Defuse the Deadlock SQLChallenge (23 minutes)
2018-02-01: The Dirty Secrets of NOLOCK (50 minutes)
2018-01-12: How Index Keys and Includes Work (1 hour)
2017-12-18: The Case of the Slow Temp Table: A Performance Tuning Problem (50 minutes)
2017-12-15: Repeatable Read and Serializable Isolation Levels (45 minutes)
2017-12-08: Indexing for Windowing Functions (45 minutes)
2017-07-16: Execution Plans: Partitioned Tables and Columnstore Indexes (1 hour 30 minutes)
2017-07-10: SQL Server Management Studio Shortcuts and Secrets (1 hour 30 minutes)
2017-06-26: Why Creating an Index Can Slow Down a Query (1 hour 30 minutes)
2017-04-10: Query Tuning with Hints & Optimizer Hotfixes (2 hours 15 minutes)
2017-02-18: Problem Queries in Table Partitioning (1 hour 30 minutes)
2016-10-18: Troubleshooting Blocking and Deadlocks for Beginners (2 hours 10 minutes)