DBAtlas · 数据库运维图谱

601: Could not continue scan with NOLOCK due to data movement(由于数据移动,无法继续以 NOLOCK 方式扫描)

SQL Server

含义

在以 NOLOCK(READ UNCOMMITTED)方式扫描期间,由于并发的数据移动(页拆分/移动),扫描无法继续。无锁读取遇到了不一致的状态。

原因

在使用 NOLOCK 提示或 READ UNCOMMITTED 隔离级别读取时,被扫描的页因并发的更新/删除/页拆分而被移动。

解决方法

重新运行查询(通常是瞬时的)。尽量避免使用 NOLOCK 提示;使用 READ COMMITTED SNAPSHOT(RCSI)隔离实现非阻塞且一致的读取。在写密集型表上,优先使用快照隔离而非脏读。

在 DBAtlas 中打开 →

同一数据库的其他条目