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锁类型
- 查看SQL SERVER中某个查询用了多少TempDB空间
- sqlserver列数据拆分(SQL Server基础之行数据转换为列数据)
- sql版本号处理并发(SQL server高并发生成唯一订单号的方法实现)
- sql server 知识大全(sql server 交集,差集的用法详解)
- SQL Server作业
- SQL Server中@@ROWCOUNT的用法
- SQL SERVER中根据身份证号获取出生日期
- SQL Server ltrimrtrim函数的用法(SQL Server ltrimrtrim 去不掉空格的原因分析)
- sqlserver登录身份验证(SQL Server 2012 身份验证Authentication)
- SQL SERVER 数据库外键
- sql server支持两种登录验证方式(远程登陆SQL Server 2014数据库的方法)
- sqlserver设置自动备份的注意事项(SQL server 定时自动备份数据库的图文方法)
- 启动sqlserver代理服务失败(SQL Server代理服务无法启动怎么办)
- sqlserver安装日志文件夹(SQL SERVER日志进行收缩的图文教程)
- sql server 数值类型运算(SQL SERVER2012中新增函数之字符串函数CONCAT详解)
- 世界上只有妈妈好(世界上只有妈妈好的歌词)
- 为什么现在社会越来越卷了(现在社会为什么发展那么快呢)
- 直播带货能赚到很多钱吗(直播带货能赚到很多钱吗现在)
- 做网红真的很能赚钱吗(做网红真的很能赚钱吗)
- 10句英语常用(英语常用900句)
- 爱情能当饭吃吗(爱情能当饭吃吗说说)
热门推荐
- mysql读写分离怎么做(MySQL读写分离,写完读不到问题如何解决)
- mysqlnull所占空间(详解mysql三值逻辑与NULL)
- ubuntu python3.7安装(详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本)
- C#排序算法的比较
- 最小web服务器linux系统(常用的web服务器软件整理win+linux)
- jquery中is()
- SQL SERVER连接池
- python 装饰器模式(python重试装饰器的简单实现方法)
- sql怎么对一列数据分组另一行求和(分组后分组合计以及总计SQL语句稍微整理了一下)
- linux操作系统的关机指令有哪些(Linux系统关机命令之间的区别及用法详解)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9