sql调优步骤


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

一,入手:
拿到存储过程后,先执行一次看速度与编译时间,确定是编译慢还是执行问题。

SET STATISTICS TIME ON 
Exec dbo.bdOrderTrace_sel2 
@TranType='HasStatusPassed',@OrderNo='L121114BDNAW2',@OrderStatus='33'

1)若是编译慢,说明编译计划没有重用,在频繁的重新生成,多出于大型存储过程,此时可将sql移出单独写。
或者分析影响执行计划频繁生成的因素。http://enjoyasp.net/?p=2131

2)若执行很快,但正式环境还是很慢,可能发生了参数嗅探问题,参考:http://enjoyasp.net/?p=2161

3)若不是编译问题,也不是参数嗅探问题,那说明sql语句要优化了
   (1)分析逻辑,去除不必要的表关联,不必要的字段select
   (2)用数据库引擎优化顾问来给出索引建议