【原】SQL存储过程调用慢,但是重新编译一下存储过程就很快

来源:互联网 发布:网络刷手要资金吗? 编辑:程序博客网 时间:2024/05/15 23:46

.NET调用存储过程时,有时候会变的很慢甚至会timeout,但是再执行一下存储过程,再调用就会很快。

 

解决办法:

1. 在可能比较耗时的语句后面加上option(recompile)

2. 创建存储过程时在其定义中指定 WITH RECOMPILE 选项,表明 SQL Server 将不对该存储过程计划进行高速缓存;该存储过程将在每次执行时都重新编译。当存储过程的参数值在各次执行间都有较大差异,导致每次均需创建不同的执行计划时,可使用 WITH RECOMPILE 选项。此选项并不常用,因为每次执行存储过程时都必须对其进行重新编译,这样会使存储过程的执行变慢。

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