SQL Server Interview Question #252

What are key-range locks?

Advanced Transactions & Concurrency Senior Advanced

Detailed Explanation

Key-range locks protect ranges of index keys rather than only existing rows. SQL Server uses them under SERIALIZABLE isolation to prevent another transaction from inserting rows into a range that would change the result of a protected predicate query.

Effective range locking depends on the access path and index structure. Appropriate indexes can therefore influence both performance and the scope of locking under SERIALIZABLE workloads.