执行同样的存储过程,调用同样的参数
在VS 中调用存储过程和传参后,到数据加载需要20秒或更多,
在SQL直接调用则不到一秒,同一个存储过程为什么有这么大的区别呢?
原因:存储过程计划失效的原因
产生原因:存储过程涉及到的对象表结构发生改变或数据量发生大的变化。
解决方案1:
1、重启数据库服务
2、执行exec sp_recompile @objname='存储过程名称'
3、重新执行一次存储过程
解决方案2:
使用 WITH
RECOMPILE 每次运行都编译存储过程
对于不经常使用的SQL,可以使用这种方案
例子:
ALTER PROCEDURE [dbo].[Proc_test]
WITH RECOMPILE