[英]Isolation Level Difference, SNAPSHOT and SNAPSHOT READ COMMITTED Snapshot?
我有点难以确定SNAPSHOT和SNAPSHOT READ COMMITTED之间的区别? READ COMMITTED是一种悲观的并发方法,如何将其应用于乐观并发? 在这种情况下为SNAPSHOT隔离级别
谢谢,非常感谢您的一些启发
这两个名字令人不安地令人误解。
在SQL Server术语中,SNAPSHOT和SNAPSHOT READ COMMITTED都是隔离级别,也是 SQL Server如何完成并发数据访问隔离的一种实现方式 。
主要区别 :在SNAPSHOT中,可重复读取和幻像读取被阻止,而在SNAPSHOT READ COMMITTED级别中,您会遇到不可重复的读取,并且还可能会遇到幻像读取。
换句话说,SNAPSHOT是比SNAPSHOT READ COMMITTED更高且更强的隔离)
仅关于隔离级别:SNAPSHOT等效于SERIALIZABLE,而SNAPSHOT READ COMMITTED等效于READ COMMITTED。 但是实现是不同的。 当SNAPSHOT和SNAPSHOT READ COMMITTED使用记录版本时,另一方面SERIALIZABLE和READ COMMITTED使用阻塞语义来在第一个事务完成时,将并发进程强制阻塞到已更改(或读取)的资源上。
我认为并发和事务隔离很难理解,并且(几乎总是)将它与乐观/悲观的隐喻混合使用,会使理解变得更加困难,无济于事。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.