首页 新闻 会员 周边

关于数据库锁的问题

0
悬赏园豆:5 [已解决问题] 解决于 2008-02-24 13:21
begin tran<br>update [user] set fnc='xue' where userid=20361<br>waitfor delay '00:00:10'<br>commit tran<br>-----------------------事务1<br><br><br><br>select&nbsp; * from [user] where userid=888888<br>-----------------------事务2<br><br>当事务1没有执行完成的时候事务2是不允许执行的,也就是说update 一条记录的时候也是下表级的排它锁,我就感到很怪了,MSSQL为什么不下行级锁呢?这样不是可以减少锁的粒度吗?有谁可以解释一下。。。。<br>
ITAres的主页 ITAres | 初学一级 | 园豆:107
提问于:2008-02-19 09:14
< >
分享
最佳答案
0
userid是主键+索引的话应该是行级锁啊,否则就需要遍历然后就是页级锁,然后遍历完一个释放一个。临时解决方法你可以在select语句里加with(nolock),这样可以忽略锁。
Jeffrey Zhao | 小虾三级 |园豆:1629 | 2008-02-23 16:29
其他回答(1)
0
学习中.......................
MartinGao | 园豆:663 (小虾三级) | 2008-02-19 11:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册