众所周知,Read Committed 隔离容易出现不同的异常。我阅读了 The Great Paul White 关于隔离级别的系列文章。与讨论相关的帖子是这个:
它声明(再次,这是众所周知的),在读取提交隔离下运行的语句:
Can encounter the same row multiple times;
Can miss some rows completely;
我的问题是关于“缺失的行”部分。讨论丢失行的示例通常使用以下查询来说明问题:
select count(*) from table
.
我的问题是“常规”选择查询中的行是否会丢失?意思是,查询可以像
select * from table
甚至
select * from table where id = @id
还会错过在该查询开始之前提交的行吗?此问题仅适用于使用锁定(不是 RCSI)提交的读取,因为 RCSI 不允许这些类型的异常。