(NOLOCK) for YESFUN: Games with Isolation Levels

SQL Standards

SQL 92 Standard: http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt

SQL 2003 late draft from the Whitemarsh Information Systems Corporation: http://www.wiscorp.com/sql_2003_standard.zip

Whitepaper by Kimberly L. Tripp, Neal Graves

SQL Server 2005 Row Versioning-based Transaction Isolation  http://msdn.microsoft.com/en-us/library/ms345124(v=sql.90).aspx <-must read
Contains sample code, comparison to Oracle Snapshot, Table with possible phenomena, and a table of ALL sql server isolation levels and when they are best suited for an application.

Books Online

Concurrency Effects http://msdn.microsoft.com/en-us/library/ms190805.aspx

Set Transaction Isolation Level http://msdn.microsoft.com/en-us/library/ms173763.aspx

Isolation Levels in the Database Engine http://msdn.microsoft.com/en-us/library/ms189122.aspx

Key-Range Locking http://msdn.microsoft.com/en-us/library/ms191272.aspx

Locking Hints http://msdn.microsoft.com/en-us/library/ms189857.aspx

Query Hints http://msdn.microsoft.com/en-us/library/ms181714.aspx

Lock Compatibility (Database Engine) http://msdn.microsoft.com/en-us/library/ms186396.aspx

Craig Freedman’s Fantastic Blog Posts on Isolation Levels! ←must read

Isolation Levels Tag (multiple great posts are linked from herehttp://blogs.msdn.com/b/craigfr/archive/tags/isolation+levels/

Read Committed Isolation Level http://blogs.msdn.com/b/craigfr/archive/2007/04/25/read-committed-isolation-level.aspx

Serializable vs Snapshot Isolation Level http://blogs.msdn.com/b/craigfr/archive/2007/05/16/serializable-vs-snapshot-isolation-level.aspx

Michael J Swart

A highly entertaining and invormative series on the Concurrent Transaction Phenomena. Start here: http://michaeljswart.com/?p=604

Conor Cunningham

Conor vs. Isolation Level Upgrade on UPDATE/DELETE Cascading RI http://blogs.msdn.com/b/conor_cunningham_msft/archive/2009/03/13/conor-vs-isolation-level-upgrade-on-update-delete-cascading-ri.aspx

Lubor Kollar

Previously committed rows might be missed if NOLOK hint is used http://blogs.msdn.com/b/sqlcat/archive/2007/02/01/previously-committed-rows-might-be-missed-if-nolock-hint-is-used.aspx

Itzik Ben-Gan

Quaere Verum – Clustered Index Scans – Part III http://www.sqlmag.com/article/sql-server/quaere-verum-clustered-index-scans-part-iii.aspx

Paul Randal

When can allocaiton order scans be used? http://blogs.msdn.com/b/sqlserverstorageengine/archive/2006/11/09/when-can-allocation-order-scans-be-used.aspx

Paul White

The Case of the Missing Shared Locks http://sqlblog.com/blogs/paul_white/archive/2010/11/01/read-committed-shared-locks-and-rollbacks.aspx

Xavier Shay

A Gentle Introduction to Isolation Levels http://www.engineyard.com/blog/2010/a-gentle-introduction-to-isolation-levels

Other References

Isolation (database systems) http://en.wikipedia.org/wiki/Isolation_(database_systems)

Transaction Isolation in PostGresSQL http://www.postgresql.org/docs/8.1/static/transaction-iso.html

2 Responses to “(NOLOCK) for YESFUN: Games with Isolation Levels”

  1. Bill Graziano June 8, 2011 at 9:17 am #

    Thanks! This is a fantastic set of links.

Trackbacks/Pingbacks

  1. Eric Humphrey » NOLOCK for Developers - March 31, 2011

    [...] made up a poster that helps visualize the different isolation levels. She also put together a great list of links about NOLOCK and the other isolation [...]

Leave a Reply