- 0
- 0
- 约4.12千字
- 约 8页
- 2017-08-20 发布于浙江
- 举报
SQL Server中表锁定的的原理及解锁演示
有几个朋友留言建议结合例子来演示一下, 上篇已经说过锁的几种类型, 可以利用系统动态视图sys.dm_tran_locks查看到,重要的栏位如下:
resource_type 被锁的资源类型(Database, FILE, Object,PAGE,KEY,EXTENT,RID,APPLICATION,METADATA,HOBT,APPOCATION_UNIT) request_mode 锁的类型(共享锁,更新锁,排它锁, 架构锁等) resource_description 资源描述 request_session_id Request session ID 一: 下面以AdventureWorks2008为示例数据库做简要的说明,
过滤掉一般的数据库的共享锁, 作为示例必须要看到锁, 所以用WITH(HOLDLOCK)来保持锁.
1. Shared locks (S) 共享锁
USE AdventureWorks2008
BEGIN TRAN
select * from Sales.SalesOrderHeader WITH(HOLDLOCK)
where SalesOrderID=43662
SELECT resource_type, request_mode, resource_description,
request_session_id, DB_NAME(resource_database_id)as resource_database
FROM sys.dm_tran_locks
WHERE resource_type DATABASE
--ROLLBACK TRAN
在事务回滚之前, 查看锁的类型:
其他session对Table只读, 不能更新, 在开一个新的session测试:
select * from Sales.SalesOrderHeader where SalesOrderID=43662
go
update Sales.SalesOrderHeader set OrderDate=GETDATE() where SalesOrderID=43662
select可以正常执行, update语句一直处于等待状态, 等待上面的session释放锁.
2. Update locks (U): 更新锁是共享锁和独占锁的组合.用UPDLOCK保持更新锁
USE AdventureWorks2008
BEGIN TRAN
select * from Sales.SalesOrderHeader WITH(UPDLOCK)
where SalesOrderID=43662
SELECT resource_type, request_mode, resource_description,
request_session_id,DB_NAME(resource_database_id)as resource_database
FROM sys.dm_tran_locks
WHERE resource_type DATABASE
ROLLBACK TRAN
查看到锁的信息:
3.Exclusive locks (X): 独占锁是为了锁定数据被一个session修改的数据, 而不能够被另外的session修改. 只能指定NOLOCK来读取.
USE AdventureWorks2008
BEGIN TRAN
update Sales.SalesOrderHeader set ShipDate=GETDATE()
where SalesOrderID=43662
SELECT resource_type, request_mode, resource_description,
request_session_id,DB_NAME(resource_database_id)as resource_database--,*
FROM sys.dm_tran_locks
WHERE resource_type DATABASE
ROLLBACK TRAN
查看锁:
4.Intent locks (I): 意向锁用于建立锁的层次结构. 意向锁包含三种类型:意向共享 (IS)、意向排他 (IX) 和意向排他共享 (SIX)。
数据库引擎使用意向锁来保护共享锁(S 锁)或排他锁(X 锁)放置在锁层次结构的底层资源上。 意向锁之所以命名为意向锁,是因为在较低级别锁前可获取它们,因此会通知意向将锁放置在较低级别上。
意向锁有两种
您可能关注的文档
最近下载
- 2025年最新详版征信报告个人信用报告样板模板word格式新版可编辑.docx
- 大学生心理健康相关问卷(缩减版3).docx VIP
- 互感器的原理与设计计算.docx VIP
- 危化品公司消防安全培训.ppt VIP
- 油漆工艺手册.ppt VIP
- 浸没液冷服务器可靠性白皮书.pdf VIP
- F102052【复试】2024年东北农业大学095300风景园林《加试草坪学》考研复试核心320题(.pdf VIP
- 【上海交通大学-2025研报】2025零碳园区行业影响力洞察报告.pdf VIP
- GBT 17888.3-2020《机械安全 接近机械的固定设施 第3部分:楼梯、阶梯和护栏》(1).docx VIP
- 高一英语语法填空.docx VIP
原创力文档

文档评论(0)