With READ_COMMITTED_SNAPSHOT ON, statements under READ COMMITTED see row versions from when they started and take no shared locks, so readers and writers stop blocking one another. SQL Server leaves it off by default; Azure SQL Database and SQL database in Fabric turn it on.
Also called read committed snapshot isolation.
Read more: Microsoft Learn
In the Ultra Transcenders books
Each book explains RCSI in context, with comparison tables and the common traps.
Terms in this definition
- CRUD
Shorthand for create, read, update and delete, the four basic things you do with data. Data-plane roles in Azure Cosmos DB, for instance, authorise those operations on items.
- snapshot
Captures a VM's disk state, power state, settings and, if requested, memory at a moment in time, using one delta disk per virtual disk. Snapshots should not be relied on as backups.
- Readers
Gives view-only rights within an Azure DevOps project, for example over releases and pipelines. Don't confuse it with Azure's Reader role or the agent pool Reader role.
- Stop sequence
One of up to four strings that make the model halt generation; the sequence itself is not included in the output.
- SQL Server
The relational database from Microsoft that organisations host and run themselves, in their own data centres or on VMs. Its engine also sits underneath the Azure SQL services and SQL database in Fabric.
- Azure SQL Database
Platform-as-a-service database offered as a single database or in an elastic pool, sized up to 4 TB or 128 TB on Hyperscale. SQL Agent, CLR and queries across databases aren't available.
- SQL database in Fabric
Microsoft Fabric's transactional database, running Azure SQL Database's engine with self-tuning built in. Data lands in OneLake almost immediately, where a SQL analytics endpoint makes it queryable.
- TURN
If a direct link can't be made, RDP Shortpath for Windows 365 relays UDP traffic via Microsoft servers on port 3478 instead.
Related terms
- Lock after qualification
Part of the optimized locking feature. Rows are first tested against a DML statement's filter using their newest committed version, without locking, and only rows that pass are locked. Read committed snapshot isolation must be on.
- READCOMMITTEDLOCK
Forces a statement back to lock-based READ COMMITTED, with shared locks, even where the database has read committed snapshot isolation enabled.