SQL Server 数据库的并发控制原理-更新以及删除所利用的锁

排它锁的概念及阻塞形式

排它锁(X锁):可以防止并发事务对资源进行访问。使用排它锁时,任何其他事务都无法修改数据

排它锁操作案例:
SQL
BEGIN TRAN

UPDATE mum_baby SET user_id = '15610' WHERE gender = 1

--查询当前数据库所利用的锁
SELECT resource_type,
       request_mode,
       Count(*)
FROM   sys.dm_tran_locks
WHERE  request_session_id = @@SPID
GROUP  BY resource_type,
          request_mode
架构锁的概念

架构锁:分为架构修改锁(Sch-M)和架构稳定锁(Sch-S),架构修改锁发生在表数据定义语言(DDL)操作的过程中,架构稳定锁发生在数据库引擎编译和执行查询的过程中。

架构锁操作案例:
SQL
BEGIN TRAN

ALTER TABLE dbo.mum_baby ADD name varchar(50)

--查询当前数据库所利用的锁
SELECT resource_type,
       request_mode,
       Count(*)
FROM   sys.dm_tran_locks
WHERE  request_session_id = @@SPID
GROUP  BY resource_type,
          request_mode
批量修改锁

批量修改锁:数据库引擎将在数据大容量复制到表中使用批量修改(BU)锁,批量修改锁允许多个线程并发操作,同时防止其它非大容量操作的进程访问。

订阅评论
提醒
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
滚动至顶部