首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在读提交快照隔离(RCSI)下获取的共享锁

在读提交快照隔离(RCSI)下获取的共享锁
EN

Database Administration用户
提问于 2013-04-10 10:51:56
回答 1查看 1.4K关注 0票数 9

在使用RCSI时,我看到等待共享锁(LCK_M_S)。我的理解是,这是不应该发生的,因为SELECTs在使用RCSI时不需要共享锁。

我怎么能看到共享锁?是因为外键吗?

EN

回答 1

Database Administration用户

发布于 2014-04-18 03:57:21

我怎么能看到共享锁?是因为外键吗?

是。SQL Server在访问表以验证外键约束时恢复到读提交隔离级别的锁定实现。这是正确性所必需的,不能禁用。

这种行为只适用于数据修改语句。只有在检查外键相关数据时才使用共享锁。同一执行计划中的其他数据访问可以继续使用行版本控制。

如果Server不这样做,RCSI下的数据修改语句可能会违反外键约束,因为完整性检查使用过期(版本)数据。

不幸的是,目前还没有支持的方法来查看执行计划中锁定行为的这种变化。当跟踪标志8607处于活动状态时,可以看到内部锁定提示。

票数 14
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/39628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档