Read Committed Snapshot Isolation和Snapshot Isolation
来源:互联网 发布:linux查看压缩包 编辑:程序博客网 时间:2024/05/18 20:53
这两种隔离级别都是通过行版本控制在tempdb中生成数据的复本来解决数据的写和读的时候发生锁及阻塞的问题的。不过snapshot isolation需要在数据库中执行
ALTER DATABASE Aesop
SET ALLOW_SNAPSHOT_ISOLATION ON
之后,然后在执行事务之前,设置连接的隔离级别
SET TRANSACTION ISOLATION LEVEL Snapshot;
BEGIN TRAN
SELECT Title
FROM FABLE
WHERE FableID = 2
这时候当发生第二个事务对fableid=2的行进行更新的时候,它可以进行更新,但是在更新事务提交之后,查询事务依然是无法查到更新事务所做的修改,它还是只能查询到原始的数据,这种情况类似于repeatable read隔离级别,但是在repeatable read下,更新事务是无法更新的,直到查询事务提交之后才可以。
Read Committed Snapshot Isolation只是针对sqlserver默认的read committed隔离级别的。使用它需要执行如下sql:
ALTER DATABASE Aesop
SET READ_COMMITTED_SNAPSHOT ON
如果数据库只是普通的read committed级别下,当执行一个更新事务但没有提交时,再执行一个对更新数据进行查询的事务,查询事务将无法查询,被阻塞,但是在 READ_COMMITTED_SNAPSHOT被打开的情况下,在上面那种情况中,查询事务将不会被阻塞,它能够查询到未更新前的数据。
说句最俗的,Snapshot Isolation是针对SET TRANSACTION ISOLATION LEVEL Snapshot;的,在使用的时候需要在事务前设置隔离级别,而Read Committed Snapshot Isolation完全不需要使用set transaction isolation,因为它是针对数据默认的read committed隔离级别的。
- Read Committed Snapshot Isolation和Snapshot Isolation
- Read Committed Snapshot和Snapshot Isolation
- Read Committed Snapshot和Snapshot Isolation
- 快照隔离(Snapshot Isolation)简单介绍和例子
- Read Committed与Read committed snapshot的区别以及Read Committed Snapshot与Sanpshot的区别
- 使用快照隔离snapshot isolation实例(一)
- 使用快照隔离snapshot isolation实例(二)
- 数据库的快照隔离级别(Snapshot Isolation)
- InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED or READ UNCOMMIT
- Snapshot
- snapshot
- snapshot
- snapshot
- snapshot
- snapshot
- snapshot
- snapshot
- ANSI SQL-92的non-Repeatable read和phantom row两种isolation level的差别
- Sqlserver 数据库镜像配置小记
- 单片机C语言的经典总结
- .net第三方工具
- SQL Server logshipping配置小记
- asp.net控件开发基础系列
- Read Committed Snapshot Isolation和Snapshot Isolation
- 爵士鼓的学习 基本方法与介绍
- ANSI SQL-92的non-Repeatable read和phantom row两种isolation level的差别
- oracle中修改session
- 网页中嵌套QQ代码
- 应用程序对Sqlserver进行SQL查询使用与不使用参数对执行计划的影响
- iPhone上手
- Poj 3072 Robot(单源最短路径)
- Android系统相关包解释