SQL Server数据库表锁定原理以及如何解除表的锁定

本文详细介绍了SQL Server数据库的表锁定原理,包括锁的资源、粒度、类型,如共享锁、独占锁、意向锁等,并探讨了事务的ACID原则。在解除表锁定方面,提供了通过Activity Monitor和DMV来监控和解决锁问题的方法。
摘要由CSDN通过智能技术生成

1. 数据库表锁定原理

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

 

1.2 事务的ACID原则

 

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

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

 

1.3.2 锁的粒度:

 

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) 批量修改锁

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

1.3.4 SQL Server锁类型   

(1) HOLDLOCK: 在该表上保持共享锁,直到整个事务结束,而不是在语句执行完立即释放所添加的锁。   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值