SQL Server 中 ROWLOCK 行级锁 -will.miao
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> ADP及SQL SERVER


SQL Server 中 ROWLOCK 行级锁

发表时间:2016/8/14 8:46:24 评论(0) 浏览(3378)  评论 | 加入收藏 | 复制
   
摘 要:SQL Server 中 ROWLOCK 行级锁 
正 文:

一、ROWLOCK的使用

1、ROWLOCK行级锁确保,在用户取得被更新的行,到该行进行更新,这段时间内不被其它用户所修改。因而行级锁即可保证数据的一致性,又能提高数据操作的并发性。

2、ROWLOCK告诉SQL Server只使用行级锁,ROWLOCK语法可以使用在Select,Update和Delete语句中。

3、例如select语句中

A 连接中执行 
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ 
begin tran 
select * from tablename with (rowlock,UpdLock) where id=3 
waitfor delay '00:00:05' 
commit tran 
B连接中如果执行 
update tablename set colname='10' where id=3 --则要等待5秒 
update tablename set colname='10' where id <>3 --可立即执行 

二、SQL Server中使用ROWLOCK需要注意的地方

1、如果你错误地使用在过多行上,数据库并不会聪明到自动将行级锁升级到页面锁,服务器也会因为行级锁的开销而消耗大量的内存和CPU,直至无法响应。

2、select 语句中,RowLock在不使用组合的情况下是没有意义的,With(RowLock,UpdLock) 这样的组合才成立,查询出来的数据使用RowLock来锁定,当数据被Update的时候,锁将被释放


Access软件网交流QQ群(群号:198465573)
 
 相关文章
sql server只设置了Windows身份验证,没有设置sa登...  【杨雪  2016/7/12】
sql server数据备份有关  【网络整理  2016/7/20】
Sql Server 类型转换的一个小坑  【缪炜  2016/7/22】
SQL Server 2005——有关开发的10个最重要的特点  【易勋  2016/7/28】
SQL Server null值需要注意的地方  【缪炜  2016/8/14】
常见问答
技术分类
相关资源
文章搜索
关于作者

will.miao

文章分类

文章存档

友情链接