我用EXEC spName 'p1','p2'执行存储过程时每次都要1分钟左右,但是执行alter proc spname(当然包括里面的所有脚本)后,它的执行速度变得非常快,执行时间1秒都不要;但是系统用一段时间后上述存储过程又变慢了,然后我再用alter proce spanem执行下速度又变快了,经常发生这样的情况,请问这是什么原因?
------解决方案--------------------
传说中的参数嗅探,parameter sniff,
博客园上有非常多这方面的资料
这个问题往简单了说就是,存储过程采用了不正确的方式去处理查询
------解决方案--------------------
参数嗅探的原因比较大。但是要考虑编码规范,不是随便用with recompile就可以解决问题