Chosen with SET TRANSACTION ISOLATION LEVEL, this determines how much one transaction can see of, or be affected by, concurrent work. The levels range from READ UNCOMMITTED and READ COMMITTED through REPEATABLE READ to SNAPSHOT and SERIALIZABLE.
Read more: Microsoft Learn
In the Ultra Transcenders books
Each book explains Isolation level in context, with comparison tables and the common traps.
Terms in this definition
- Set
Secret permission in Key Vault for writing secrets; some older material refers to it as Create.
- RANGE
Usable only in visual calculations, this DAX function picks a span of rows along an axis counted from the current one, say the previous six. Think of it as a simpler WINDOW, handy for moving totals.
- READ UNCOMMITTED
The least strict isolation level, where reads acquire no shared locks (as if every table had a NOLOCK hint), leaving the door open to dirty reads, non-repeatable reads and phantoms.
- 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.
- REPEATABLE READ
Under this isolation level, rows that have been read keep their shared locks until commit or rollback, so dirty and non-repeatable reads can't happen, though phantoms still can.
- 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.
- SERIALIZABLE
The strictest pessimistic isolation level: key-range locks are kept until commit or rollback, so no dirty reads, non-repeatable reads or phantoms occur. Applying HOLDLOCK to every table gives the same effect.
Related terms
- Snapshot isolation
The only isolation level a Fabric warehouse uses; SET TRANSACTION ISOLATION LEVEL has no effect. Because locks are taken per table, two transactions changing one table can clash, and the later one fails and has to be rerun.