Sql Server锁的粒度
类别:数据库 浏览量:449
时间:2015-1-26 Sql Server锁的粒度
Sql Server锁的粒度锁的粒度就是指锁的生效范围,就是说是行锁,还是页锁,还是整表锁. 锁的粒度同样既可以由数据库自动管理,也可以通过手工指定hint来管理。
为描述方便,这里用T1代表一个数据库执行请求,T2代表另一个请求
一、页锁实例
T1: select * from table (paglock)
T2: update table set column1='hello' where id>10
说明
T1执行时,会先对第一页加锁,读完第一页后,释放锁,再对第二页加锁,依此类推。假设前10行记录恰好是一页(当然,一般不可能一页只有10行记录),那么T1执行到第一页查询时,并不会阻塞T2的更新。
二、行锁实例
T1: select * from table (rowlock)
T2: update table set column1='hello' where id=10
说明
T1执行时,对每行加共享锁,读取,然后释放,再对下一行加锁;T2执行时,会对id=10的那一行试图加锁,只要该行没有被T1加上行锁,T2就可以顺利执行update操作。
三、整表锁实例
T1: select * from table (tablock)
T2: update table set column1='hello' where id = 10
说明
T1执行,对整个表加共享锁. T1必须完全查询完,T2才可以允许加锁,并开始更新。
以上3例是手工指定锁的粒度,也可以通过设定事物隔离级别,让数据库自动设置锁的粒度。不同的事物隔离级别,数据库会有不同的加锁策略。
标签:Sql Server
您可能感兴趣
- sql server中实现split功能
- SQL SERVER 数据库外键
- sqlserver分区查询语句(SQL Server中的集合运算: UNION, EXCEPT和INTERSECT示例代码详解)
- 查询SQL SERVER中某个数据库的每个表的数据量和每行记录所占用空间
- Sql Server 更新锁
- sql server导入数据csv文件(大容量csv快速内导入sqlserver的解决方法推荐)
- sqlserver2012登录出现报错18456(SQL Server 2012 sa用户登录错误18456的解决方法)
- sql server操作方法(SQL Server 文件操作方法)
- sqlserver存储过程使用变量(浅析SQL Server的嵌套存储过程中使用同名的临时表怪像)
- sql server证书配置(SQL Server Alwayson创建代理作业的注意事项详解)
- sqlserver游标使用场景(解析SQL Server聚焦移除Bookmark Lookup、RID Lookup、Key Lookup)
- sqlserver分组查询(sql server如何利用开窗函数over进行分组统计)
- sql server日志备份查看(sql server数据库高可用日志传送的方法)
- sqlservercount函数的用法(SQL Server中row_number函数的常见用法示例详解)
- sql server2008如何升级到2012(MS sqlserver 2008数据库转换成2000版本的方法)
- sqlserver2012tcpip配置(Sql Server2012 使用IP地址登录服务器的配置图文教程)
- 红色代表什么(红色代表什么意义和象征)
- 菲律宾安全吗(菲律宾安全吗2023)
- 彩礼重要吗()
- 写信告诉我今天海是什么颜色(写信告诉我今天海是什么颜色回答)
- 英语难学吗(法语比英语难学吗)
- 今天要吃什么(今天要吃什么菜好)
热门推荐
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9