偶尔发生死锁是非常正常的。但如果你发生阻塞后,需要重启服务才能解决,那么我建议你查查是不是有未提交的事务。你的情况不叫死锁,叫阻塞。
死锁发生时,sql server会很快帮你自动牺牲一个进程来解除死锁。
我的网站上有一篇关于死锁和阻塞的文件,你可以看看。--------------------------
http://chinadba.cn
深圳骄子数据库服务网
最具实战经验的数据库优化、管理、设计、培训。

解决方案 »

  1.   

    begin tran的时候,记得一定要commit/rollback。否则假如事务中存在update的语句的话,那对该表所加的更新排它缩就一直会占有,其他共享缩等都不能对该表进行访问。
      

  2.   

    我們之前也出現過這樣的問題。之后是這樣修改的﹐修改之后問題很少出現了。
    如果只是對表進行查詢時﹐你也把它的鎖設為
    set transaction isolation level read uncommitted
    百查詢完之后﹐再恢復為
    set transaction isolation level read committed這樣至少使用查詢語句時就不會出現鎖定情況了。