关于 VS 调用存储过程加载很慢和SQL 执行很快的那些事

时间:2021-08-22 08:36:31

执行同样的存储过程,调用同样的参数

在VS 中调用存储过程和传参后,到数据加载需要20秒或更多,

在SQL直接调用则不到一秒,同一个存储过程为什么有这么大的区别呢?

原因:存储过程计划失效的原因

产生原因:存储过程涉及到的对象表结构发生改变或数据量发生大的变化。

解决方案1:  

  1、重启数据库服务

  2、执行exec sp_recompile @objname='存储过程名称'

  3、重新执行一次存储过程

解决方案2:  

   使用 WITH RECOMPILE 每次运行都编译存储过程

  对于不经常使用的SQL,可以使用这种方案

  例子:

ALTER PROCEDURE [dbo].[Proc_test]
WITH RECOMPILE