文档库

最新最全的文档下载
当前位置:文档库 > SQL优化之存储过程强制编译

SQL优化之存储过程强制编译

SQL优化之存储过程强制编译

http://www.wendangku.net/doc/941ac914482fb4daa58d4b72.html调用SQL后台存储过程时,有时突然就变得很慢,在后台直接执行存储过程没问题,但在前台调用存储过程时就是很慢,而且在前台调用成功后,再次调用还是一样的慢,但更新一下存储过程再调用就很快了。但这始终不能彻底解决问题,过段时间又会出来同样的问题。环境(NET4.0+SQL2008R2)

解决办法:

方法一:在可能比较耗时的语句后面加上option(recompile)

方法二:强制编译存储过程

SQL Server 提供三种重新编译存储过程的方法:

(1)、sp_recompile 系统存储过程强制在下次运行存储过程时进行重新编译。

示例:exec sp_recompile 存储过程名

(2)、创建存储过程时在其定义中指定 WITH RECOMPILE 选项,表明 SQL Server 将不对该存储过程计划进行高速缓存;该存储过程将在每次执行时都重新编译。

示例:Create Proc 存储过程名 WITH RECOMPILE AS 参数

(3)、在执行存储过程时指定 WITH RECOMPILE 选项,可强制对存储过程进行重新编译。仅当所提供的参数不典型,或者自创建该存储过程后数据发生显著更改时才应使用此选项。
示例:存储过程名 WITH RECOMPILE