【发布时间】:2014-10-20 22:50:58
【问题描述】:
对于 SQL Server 2008 R2 中的 SNAPSHOt 隔离级别,MSDN ADO.Net 文档中提到了以下内容:
修改数据的事务不会阻塞读取数据的事务,读取数据的事务不会阻塞写入数据的事务,因为它们通常会在 SQL Server 中默认的 READ COMMITTED 隔离级别下阻塞。
当两个事务都处于 SNAPSHOT 隔离模式时,没有提及写入是否会阻塞写入。所以我的问题如下: 在一个 SNAPSHOT 事务1 中的写入会阻止写入另一个 SNAPHOT 事务2 中的相同表吗?
最新更新
在对我的问题进行了很多思考之后,我得出了如下段落所述的结论。希望其他人可以对此有所了解。
没有写入不会阻塞写入的关系数据库。换句话说,写入将总是阻塞写入。写入将包括诸如 INSERT 或 UPDATE 或 DELETE 之类的语句。无论您使用哪种隔离级别都是如此,因为当数据库中发生多次写入时,所有关系数据库都需要实现数据一致性。当然,同时写入需要有冲突(如插入同一个表或更新同一行)才能发生这种阻塞。
【问题讨论】:
标签: sql-server-2008-r2 isolation-level