本帖使用场景:当sqlserver已经做过了整体优化,性能问题没有得到解决;(突然缓慢的情况)
整体优化请参看帖子:一般sqlserver在遇到性能问题的时候,首先就要做整体的性能优化,因为sqlserver的索引碎片太多就会引起性能问题,你参看下面的连接,sqlserver需要定期的优化 http://club.kingdee.com/forum.ph ... 1&extra=#pid3229112 对数据库的索引做优化,该操作建议一个月执行一次,有助于提高sqlserver的性能,请你参看此文档对数据库优化,优化完之后观察一段时间;
注意:上述方法适用于sqlserver一直都是整体性能缓慢,逐渐缓慢导致; 不适用突然缓慢的情况;
[hr]
sqlserver整体优化只是解决整体的性能问题,本帖适用的是,性能问题偶然发生,突然的缓慢。现象就是:某一时刻卡死,卡住,操作不了任何功能点,但是过了这个时段之后EAS又能正常使用;
[hr]
如果发生了上述现象,就需要考虑sqlserver是遇到了锁 或 阻塞 的情况了;那么我们就要收集相关的锁或阻塞的日志,好近一步确定性能阻塞的根源;
收集时间:当sqlserver卡死或阻塞正在发生的时候,也就是故障重现的时候收集;(非故障时刻可能收集不到)
收集方法请参看下面的步骤:
步骤一:登录sqlserver的企业管理器;点开“活动监视器”,查看等待这个状态栏,这个窗口可以一直开着监视着;当“等待“已经很高,全部绿色的时候,那说明sqlserver有很多任务在等待,就是收集时机;(下图由于不是故障点截图,请参考)
当“资源等待”这里,排在前面的上有LOCK的这个也说明有锁了,收集时机到了;(记得截图收集)
步骤二:选中数据库,收集下面的两个报表就行:——所有正在阻塞事物;按已阻塞事物排在前面的事物;
如果是下图所示就说明没有收集到锁信息,收集时机不对;
下面就是存在锁的情况:导出excel里面:
收集到之后导出成为excel日志,到金蝶ksm系统提单即可;
存在死锁或阻塞杀锁: