Maximizing Database Performance With Isolation Levels
summary
Walks through concrete tests on SQL Server and Azure SQL Database using a 41,437-row US ZIP table, extended events, sys.dm_tran_locks and ALTER DATABASE toggles. Demonstrates read uncommitted (WITH NOLOCK) returning transient “Bob” names and a 1,000-run test that yields the correct count only 60 times, with 371 undercounts and 569 overcounts. Shows READ_COMMITTED_SNAPSHOT giving 100% stable statement results via the tempdb version store, serializable taking nine key‑range locks for eight rows, and snapshot producing an update conflict (error 3960) on concurrent writes.
AI-written summary · about
chapters (13)
- 0:00Introduction to concurrency
- 1:21Concurrency conflicts
- 3:56Locking and deadlock
- 7:05Pessimistic vs optimistic
- 8:04SQL Server isolation levels
- 13:54Read uncommitted isolation
- 19:34Read committed isolation
- 26:58Repeatable read isolation
- 29:23Serializable isolation
- 31:54Optimistic concurrency
- 34:21Read committed snapshot
- 37:29Snapshot isolation
- 44:38Cloud considerations and Q&A
related talks
47mMaximizing Database Performance With Isolation Levels
47mMaximizing Database Performance With Isolation Levels
50mAchieve peak performance and availability for your SQL Server and Azure SQL workloads with core engi
52mMy application is fully concurrent and async. What about the database?
53mOptimizing your Azure SQL Database workloads
50mAchieve peak performance and availability for your SQL Server and Azure SQL workloads with core engi
49mHidden Gems in SQL Server 2022 Database Engine
51mNext Level Scalability on SQL Server 2022
