​场景:
某DBA在一个人操作数据库时发现,可提交读事务隔离级别下返回的数据少于未提交读事务隔离级别,确认没有其他事务修改数据。

解决方案1:

将数据查询放入一个新建的表,使用该表查询发现问题被消除。

解决方案2:
运行DBCC CHECKDB,发现 3 个分配错误和 21756 个一致性错误,使用DBCC CHECKDB(REPAIR_REBUILD)来修复

 

问题原因:
在未提交读或NOLOCK下,SQL SERVER 使用IAM链来读取所有数据,在普通模式下,SQL SERVER 按照聚集索引的索引链(每个索引页头存放上一页和下一页的文件ID和页ID)来访问所有数据,因此当分配页出现错误时,就会导致该情况

相关文章:

  • 2021-10-19
  • 2021-10-22
  • 2021-06-21
  • 2021-08-31
  • 2022-01-18
  • 2021-12-04
  • 2022-02-28
  • 2021-05-20
猜你喜欢
  • 2021-12-14
  • 2021-12-22
  • 2021-06-04
  • 2021-08-06
  • 2021-05-12
  • 2021-04-19
相关资源
相似解决方案