当前位置: 代码迷 >> Sql Server >> 为何对存储过程不用任何修改,仅仅用alter proc spname(当然包括里面的所有脚本)后,它的执行速度变快
  详细解决方案

为何对存储过程不用任何修改,仅仅用alter proc spname(当然包括里面的所有脚本)后,它的执行速度变快

热度:473   发布时间:2016-04-24 10:11:53.0
为什么对存储过程不用任何修改,仅仅用alter proc spname(当然包括里面的所有脚本)后,它的执行速度变快
我用EXEC spName 'p1','p2'执行存储过程时每次都要1分钟左右,但是执行alter proc spname(当然包括里面的所有脚本)后,它的执行速度变得非常快,执行时间1秒都不要;但是系统用一段时间后上述存储过程又变慢了,然后我再用alter proce spanem执行下速度又变快了,经常发生这样的情况,请问这是什么原因?
------解决方案--------------------
传说中的参数嗅探,parameter sniff,
博客园上有非常多这方面的资料
这个问题往简单了说就是,存储过程采用了不正确的方式去处理查询

------解决方案--------------------
参数嗅探的原因比较大。但是要考虑编码规范,不是随便用with recompile就可以解决问题
  相关解决方案