在SQL Server 2016中,从我的.Net应用程序执行存储过程时会引发错误。当我们在数据库中使用相同的输入参数执行相同的存储过程时,就不会出现错误。
在不更改任何逻辑的情况下更改了存储过程之后,它将再次正常开始工作一段时间。我们经常会遇到这个问题。
是否有永久解决此问题的建议?
答案 0 :(得分:0)
我们碰到了同样的事情。从数据库运行时,存储的proc在db中运行良好,但是永久或超时。 最后,它归结为参数嗅探和缓存中的错误计划。快速而肮脏的解决方法是使用“ with recompile”选项重新编译存储的proc。我们最终只是重新编写了proc。
无论如何,this article很好地解释了SQL Server如何使用参数嗅探,为什么直到不使用它才是好东西。
打猎愉快!