当前位置:Gxlcms > 数据库问题 > SQL Server 中 ROWLOCK 行级锁

SQL Server 中 ROWLOCK 行级锁

时间:2021-07-01 10:21:17 帮助过:4人阅读



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的时候,锁将被释放



参考资料: SQL Server 中 ROWLOCK 行级锁  http://www.studyofnet.com/news/1047.html


SQL Server 中 ROWLOCK 行级锁

标签:

人气教程排行