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)用数据库引擎优化顾问来给出索引建议