日期:2014-05-17  浏览次数:20649 次

数据死锁
c#中写了一个方法,方法中对数据库中同一个表有两条操作语句1:根据id值更新数据2:根据同一个id查询数据,结果经常报死锁,希望高人指点一下啊,先谢过了
------解决方案--------------------
把操作语句贴出来 
------解决方案--------------------
ID有没有索引?死锁的原因查到了吗?
------解决方案--------------------
你是不是两条语句并发了?
------解决方案--------------------
你是要先update还是先查询?这个要分顺序,不然你第一次读出来的数据和第二次读出来的数据是不一样的。
------解决方案--------------------
先檢查是頁面鎖還是範圍鎖,如果每次只更新一行數據,可以考慮加rowlock,以免鎖升級導致死鎖的發生。

------解决方案--------------------
死锁不是这两个方法的问题。 如果都是按1,2顺序执行执行,没道理出现死锁的。
------解决方案--------------------
select 的时候加with(nolock)
------解决方案--------------------
引用:
死锁不是这两个方法的问题。 如果都是按1,2顺序执行执行,没道理出现死锁的。


同意,应该不是这个问题,可能的问题是有其他操作跟你的顺序相反,先SELECT后UPDATE,这样两个操作可能会产生死锁。建议你还是找出死锁的原因然后寻求解决办法。