SQL Server死锁产生的原因及解决办法
编辑:vsinfo 时间:2009-5-18 10:19:58 来自:唯实数据恢复公司
所有死锁产生的最深层的原因是资源况争,本文举例说明这个问题。
现象一
一个用户A访问表A(锁住了表A),然后又访问表B,另一个用户B 访问表B(锁住了表B),然后企图访问表A这时用户A由于用户B已经锁住表B,它必须等待用户B释放表B,才能继续,同样用户B要等用户A释放表A才能继续这就死锁了。
解决方法:
1、尽量避免同时锁定两个资源;
2、必须同时锁定两个资源时,要保证在任何时刻都应该按照相同的顺序来锁定资源。
现象二
解决方法:
让用户A的事务(即先读后写类型的操作),在select 时就是用Update lock
语法如下:
select * from table1 with(updlock) where
原创文章如转载请注明:转载自『











