【发布时间】:2015-03-04 09:41:48
【问题描述】:
我将隔离级别定义为READ UNCOMMITTED,因为这是在几个表上长时间运行的进程,并且不存在脏读风险,因为我只是插入新数据。
根据我的理解,因为我使用的是这个隔离级别,我应该能够从我正在插入行但我不能执行的表中执行 SELECT 语句,它会被阻止。
为什么这个隔离级别会阻塞SELECT 语句?
它应该允许查询这些表,并且在最坏的情况下,检索脏数据。
以防万一,我正在使用CURSOR(我知道,我也讨厌他们,但我没有编写这段代码)处理非常大的数据和多个表。
【问题讨论】:
-
如果您添加查询和执行计划会有所帮助.....
-
READ UNCOMMITTED在执行插入的连接上不会阻止选择的阻塞。运行SELECT语句的连接需要READ UNCOMMITTED隔离级别。最坏的情况不仅仅是脏数据;数据可能完全丢失或重复。
标签: sql sql-server cursor locking isolation-level