如何找到性能瓶颈
系统庞大且运行缓慢,服务器内存和CPU占用居高不下,无法准备定位原因,可以通过记录系统运行一段时间的log,通过排序找出IO最高的语句来定位问题;
如果能够定位到某个存储过程或语句,可以通过执行计划来分析;
如果某个存储过程超时,但因为很复杂无法定位timeout的位置,可以通过Profiler找出stmtend为空的语句
对于Lighthouse或CSOA,可以通过Usagelogging找出存在starttine但endtime为空的记录;
分析性能瓶颈:
首先要清楚缓存,带执行计划执行,然后分析执行计划
解决问题:如何查看执行计划
1. 查看是否存在Tablescan和indexscan
2. 是否存在大表关联;
3. index是否可以再优化,通过include更多列
系统庞大且运行缓慢,服务器内存和CPU占用居高不下,无法准备定位原因,可以通过记录系统运行一段时间的log,通过排序找出IO最高的语句来定位问题;
如果能够定位到某个存储过程或语句,可以通过执行计划来分析;
如果某个存储过程超时,但因为很复杂无法定位timeout的位置,可以通过Profiler找出stmtend为空的语句
对于Lighthouse或CSOA,可以通过Usagelogging找出存在starttine但endtime为空的记录;
分析性能瓶颈:
首先要清楚缓存,带执行计划执行,然后分析执行计划
解决问题:如何查看执行计划
1. 查看是否存在Tablescan和indexscan
2. 是否存在大表关联;
3. index是否可以再优化,通过include更多列
4. 示例:
使用索引注意事项