SQL Server存储过程何时进行缓存?



(作为。net开发人员,而不是DBA)。

我在很多地方读到SQL缓存存储过程,或者更准确地缓存执行计划(通过执行计划,我假设这是SP的预编译版本)。

SP执行计划何时被替换?

。我调用带有特定参数的and SP。我更改了SP代码。我再次调用带有特定参数的SP。

第一次调用新SP时是否缓存?如果修改该参数的值,是否使用缓存的执行计划?

请不要给我一个链接到另一个SQL文章写的dba。

计划缓存在不存在时生成。这意味着您第一次创建并运行SP时,将创建一个缓存。

如果您更改了提交给SP的参数的值,该将不会更新缓存。缓存计划的全部意义在于不必在每次调用SP时都重新生成该计划。但是,这会导致参数嗅探出现问题。

你可以通过以下命令强制SP的计划重新生成:

EXEC sp_recompile PROCEDURENAME

所有这些信息(以及更多)都可以在这里找到:Kimberly Tripp讨论缓存计划。

最新更新