SQL server 系统优化--通过执行计划优化索引(1)
前几天,远离上海,到了温州,在客户的这边处理系统慢,该系统每天正常down机7次左右,在线人员一多,系统运行缓慢,严重影响业务操作,到了无法忍耐的地步,这几天一直在这边处理优化中的问题和升级系统。将这些优化办法和思路记录下来,给大家在以后优化系统中提供思考和建议。
这几天都在通过执行计划来优化索引:
1,首先通过DMVs性能视图来查看那些性能问题是可以通过索引来优化的。先在生产数据库里执行下列查询:
sql server性能分析--执行sql次数和逻辑次数
查看部分得到结果(注意平均时间):
这里我们看到语句的执行时间和执行语句,我们拷贝一个运行比较慢的sql出来。预估sql执行计划,查看执行计划:
分析:这里我们看到整个复杂的执行计划中,通过RID查找数据的开销占到了80%的时间。我们这里看看他通过RID是查询什么数据。
原来是通过RID只查询workflowid数据。上面是通过索引查找(index seek)来查询数据,这时最好是做到索引覆盖,将workflowid包含到上面的索引,这样一来该sql语句的执行速度大大提高。
总结:
这几天都是通过类似的方法来评估系统的使用,再优化索引提高速度,到现在为止系统性能比先前要提高很多。
继续努力。。。。