在SQL Server 2008 R2中,对于SNAPSHOT隔离级别,在MSDN ADO.Net文档中提到了以下内容:
“修改数据的事务不会阻塞读取数据的事务,读取数据的事务也不会阻塞写入数据的事务,这与SQL Server默认的READ COMMITTED隔离级别下通常的情况不同。”
在两个事务都处于SNAPSHOT隔离模式时,没有提到写入是否会阻塞写入。因此我的问题如下: 在一个SNAPSHOT事务1中,对相同表格的写入是否会阻塞另一个SNAPSHOT事务2的写入? 最新更新 在思考了很多关于我的问题后,我得出了以下结论。希望其他人能够更深入地解释。
“没有任何关系型数据库可以使写入不阻塞写入”。换句话说,写入将始终阻塞写入。写入包括INSERT、UPDATE或DELETE语句。这适用于所有隔离级别,因为所有关系型数据库都需要在数据库中发生多个写入时实现数据一致性。当然,同时进行的写入需要发生冲突(例如插入到相同的表格或更新相同的行),才会发生阻塞。
“修改数据的事务不会阻塞读取数据的事务,读取数据的事务也不会阻塞写入数据的事务,这与SQL Server默认的READ COMMITTED隔离级别下通常的情况不同。”
在两个事务都处于SNAPSHOT隔离模式时,没有提到写入是否会阻塞写入。因此我的问题如下: 在一个SNAPSHOT事务1中,对相同表格的写入是否会阻塞另一个SNAPSHOT事务2的写入? 最新更新 在思考了很多关于我的问题后,我得出了以下结论。希望其他人能够更深入地解释。
“没有任何关系型数据库可以使写入不阻塞写入”。换句话说,写入将始终阻塞写入。写入包括INSERT、UPDATE或DELETE语句。这适用于所有隔离级别,因为所有关系型数据库都需要在数据库中发生多个写入时实现数据一致性。当然,同时进行的写入需要发生冲突(例如插入到相同的表格或更新相同的行),才会发生阻塞。