技术开发 频道

SQL Server表锁定原理以及如何解除锁定

    【IT168 评论】1. 数据库表锁定原理

  1.1 目前的C/S,B/S结构都是多用户访问数据库,每个时间点会有成千上万个user来访问DB,其中也会同时存取同一份数据,会造成数据的不一致性或者读脏数据.

1
 

  1.2 事务的ACID原则

1
 

  1.3 锁是关系数据库很重要的一部分, 数据库必须有锁的机制来确保数据的完整和一致性.

  1.3.1 SQL Server中可以锁定的资源:

1
 

  1.3.2 锁的粒度:

1
 

  1.3.3 锁的升级:

  锁的升级门限以及锁升级是由系统自动来确定的,不需要用户设置.

  1.3.4 锁的类型:

  (1) 共享锁:

  共享锁用于所有的只读数据操作.

  (2) 修改锁:

  修改锁在修改操作的初始化阶段用来锁定可能要被修改的资源,这样可以避免使用共享锁造成的死锁现象

  (3) 独占锁:

  独占锁是为修改数据而保留的。它所锁定的资源,其他事务不能读取也不能修改。独占锁不能和其他锁兼容。

  (4) 架构锁

  结构锁分为结构修改锁(Sch-M)和结构稳定锁(Sch-S)。执行表定义语言操作时,SQL Server采用Sch-M锁,编译查询时,SQL Server采用Sch-S锁。

  (5) 意向锁

  意向锁说明SQL Server有在资源的低层获得共享锁或独占锁的意向。

  (6) 批量修改锁

  批量复制数据时使用批量修改锁  

0
相关文章