关于MSSQL数据库隔离级别-快照(SnapShot)
目录
在事务中将隔离级别设为SnapShot,可提升读写并发性能,防止脏读,这里简单介绍下设置使用方法
在单独事务中启用SNAPSHOT
不开启默认选项,但需要在单独的事务中使用快照,需要先开启一个数据库选项
- 开启选项,允许快照隔离
- SSMS操作
资源管理器选中某数据库-属性-选项-允许快照隔离-True - T-SQL操作
ALTER DATABASE DBName SET ALLOW_SNAPSHOT_ISOLATION ON
- 在事务操作前加SET TRAN ISOLATION LEVEL SNAPSHOT
- 例子
SET TRAN ISOLATION LEVEL SNAPSHOT
your transaction code
设置数据库默认为COMMITTED_SNAPSHOT
数据库默认级别设置后,事务前不用加Set语句就可以起到快照效果
- SSMS设置
资源管理器选中某数据库-属性-选项-读提交快照处于打开状态-True - T-SQL设置
ALTER DATABASE DBName SET READ_COMMITTED_SNAPSHOT ON
查询数据库是否开启了相关设置
SELECT database_id,name
,snapshot_isolation_state -- 1代表 允许快照隔离
,is_read_committed_snapshot_on -- 1 代表 默认隔离级别为 Read Committed SnapShot
FROM sys.databases