SQL Server › Isolation & Locking

How does Read Committed Snapshot Isolation differ from regular Read Committed isolation, and what tradeoff does enabling it introduce?

Advanced

Answer

Read Committed Snapshot Isolation changes how the default Read Committed level behaves, using row versioning instead of shared locks for reads, which significantly reduces blocking between readers and writers, but introduces additional storage overhead in tempdb to maintain those row versions and a small amount of extra processing overhead for every data modification.
ALTER DATABASE MyDatabase SET READ_COMMITTED_SNAPSHOT ON;
Real-world example A high traffic e-commerce database enables Read Committed Snapshot Isolation, noticing significantly reduced blocking between customers browsing products and the background processes updating inventory counts, at the cost of a modest increase in tempdb usage.

Common follow-ups: How much additional load does this feature typically add to tempdb?;Does enabling this feature require any application code changes?