我正在处理从不再在公司的人继承的更新程序。

我发现标头后包含WITH RECOMPILE选项的过程。在注释中,它表示已添加“以减轻阻止超时”

ALTER PROC ups_SomeProc (@pMyParameter INT) WITH RECOMPILE
AS
BEGIN


根据我的经验,我从未听说过WITH RECOMPILE选项可以帮助阻止,甚至与阻止相关。

我是否对这种选择缺少某种了解,还是实施它的人对它的功能感到困惑?有人听说过此作为阻止的解决方案吗?

注意:当服务器仍在运行SQL Sever 2008版本时,将完成此操作。

最佳答案

OPTION WITH RECOMPILE强制Sql Server重新编译执行计划,即使内存中缓存了现有计划也是如此。

如果基础数据急剧且迅速地更改,则缓存的执行计划的效率将降低。因此,在这种情况下,使用WITH RECOMPILE选项执行过程的速度要比使用已编译的执行计划时执行的速度快得多。

我猜开发人员/人员在执行存储过程时会经历一些长时间的延迟。当他使用WITH RECOMPILE选项时,执行速度更快。因此,也许他认为执行此过程而没有重新编译选项会导致阻塞。 :)有趣的故事,但我认为这是发生了什么。

09-25 20:35