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

服务器死锁,系统卡死
[img=http://my.csdn.net/my/album/detail/1648604][/img]
现在一天至少要重启3此服务器。重启后能运行一段时间后面又开始了

------解决方案--------------------
建议打开快照隔离级别 增加并发
------解决方案--------------------
你现在的隔离级别是默认的吗?看到很多LOCK都是等待更新的,大部分都都186被阻塞了,186在Table上面加的Table锁(可以载wait resource里面看到,DatabaseID:ObjectID:IndexID).

所以还是要解决这个问题查一下186为什么会持续那么长做table lock?是做大范围的更新还是大范围的扫描?是否有有索引,这样有可能减少锁定的范围 。 

LCK_M_IX: Occurs when a task is waiting to acquire an Intent Exclusive (IX) lock.
------解决方案--------------------
从1楼截图看,是阻塞等待,引起假死机的现象.

分析阻塞原因,该加索引的加,该索引重整的重整..

------解决方案--------------------

select is_read_committed_snapshot_on,snapshot_isolation_state,snapshot_isolation_state_desc,* from sys.databases where name in ('你的DB名字')

如果是0 表示没有开启 

开启的方法:
ALTER DATABASE model SET READ_COMMITTED_SNAPSHOT ON WITH ROLLBACK IMMEDIATE

------解决方案--------------------
更正下  开启的方法

ALTER DATABASE 你的DB名字 SET READ_COMMITTED_SNAPSHOT ON WITH ROLLBACK IMMEDIATE


------解决方案--------------------
引用:
更正下  开启的方法

ALTER DATABASE 你的DB名字 SET READ_COMMITTED_SNAPSHOT ON WITH ROLLBACK IMMEDIATE


开启这个也是有副作用的,所以要经过测试(比如对于TEMPDB的Loading会加大)。先看一下是否可以通过优化解决Blocking的问题。
------解决方案--------------------
另外提一下这个不是死锁,只是Blocking(阻塞而已)
------解决方案--------------------
可能跟索引有关,我遇到过类似的,后来建了索引又升级成2008r2才没有了问题,但是原因始终不知道。