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

死锁现象


在数据库里Truncate 、Drop一个Table时,出现死锁,使用邹健的存储过程查看后发现死锁的进程语句是一个检查的查询语句:SELECT * FROM 视图 WHERE 字段='4'

问:查询是如何造成死锁的呢?一般死锁不是插入、删除才会造成的吗?
------解决方案--------------------
但查询当然不会死锁,但是另外的会话会影响这个表。导致你查询不成功。
------解决方案--------------------
SELECT * FROM 视图 WHERE 字段='4' 跟另外的那个会话进行资源竞争了呢?

找到那个会话对应的语句即可。
------解决方案--------------------
避免死锁最有效的办法,就是允许select时脏读。
如果你的SQL语句和程序,数据库水平不是相当高的话,使用脏读是你最好的方式。