数据库并发控制-SQL Server 中的锁

作者:vkvi 来源:ITPOW(原创) 日期:2009-7-27

前面提到的 X 锁、S 锁应该说是数据库考试方面的内容,实际商业的数据库管理系统,比如 SQL Server 中,可能锁要更复杂。

锁的粒度

  • RID 用于锁定表中的一行。
  • 用于锁定索引中的行。
  • 用于锁定数据页或索引页。
  • 扩展盘区 用于锁定相邻 8 个数据页或索引页。
  • 用于锁定所有数据和索引在内的整个表。
  • DB 用于锁定整个数据库。

锁的粒度越小(比如 RID),意味着可能需要很多的锁,资源开销也就大,但提高了并发性;锁的粒度越大(比如 DB),意味着需要很少的锁就能完成一个事务,资源开销小,但降低了并发性。

锁的模式

除了 X 锁、S 锁,SQL Server 中还有 U 锁(更新锁)、意向锁、架构锁、BU 锁(大容量更新锁)。由于不常用,您可直接参见 SQL Server 联机丛书或 MSDN。

相关文章