下面是 SQL Server 2000 支持的锁列表。我对“意图”锁的实际含义有点困惑。我在网上查了一下,答案似乎有点神秘。
为了进一步获得我的具体问题的答案,我希望将此问题用作 Wiki,了解每个锁的含义以及在什么情况下将获取该类型的锁。
- Shared (S)
- 更新(U)
- 独家 (X)
- Intent
- 意图共享 (IS)
- 意图排他性 (IX)
- 有意排他共享(六)
- 意图更新 (IU)
- 更新意图独占 (UIX)
- 共享意图更新 (SIU)
- Schema
- 架构修改 (Sch-M)
- 模式稳定性 (Sch-S)
- 批量更新 (BU)
- Key-Range
- 共享键范围和共享资源锁 (RangeS_S)
- 共享键范围和更新资源锁 (RangeS_U)
- 插入键范围和空资源锁 (RangeI_N)
- 独占键范围和独占资源锁 (RangeX_X)
- 转换锁(RangeI_S、RangeI_U、RangeI_X、RangeX_S、RangeX_U)
The SQL 服务器 MSDN 页面 http://msdn.microsoft.com/en-us/library/aa213039(SQL.80).aspx?ppud=4有一个合理的解释:
意向锁表示 SQL Server 希望获取层次结构中较低层的某些资源的共享 (S) 锁或排他 (X) 锁。例如,放置在表级别的共享意向锁意味着事务打算在该表内的页或行上放置共享 (S) 锁。在表级别设置意向锁可防止另一个事务随后获取包含该页的表上的排它 (X) 锁。意向锁可以提高性能,因为 SQL Server 仅在表级别检查意向锁以确定事务是否可以安全地获取该表上的锁。这样就不需要检查表上的每一行或页锁来确定事务是否可以锁定整个表。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)