更改存储过程是否会使缓存的执行计划失效?

Kan*_*ane 10 sql-server sql-server-2008 sql-execution-plan

执行ALTER PROCEDURE存储过程的语句是否导致该存储过程的所有缓存执行计划变为无效并在SQL Server 2008/2005中过期?

Mar*_*ith 8

是.

您可以通过执行验证

SELECT * FROM sys.dm_exec_procedure_stats 
where object_id = object_id('YourProc', 'P')
Run Code Online (Sandbox Code Playgroud)

之前和之后.

来自TechNet

[计划将从缓存中删除的情况包括]全局操作,如运行DBCC FREEPROCCACHE以清除缓存中的所有计划,以及更改单个过程,例如ALTER PROCEDURE,这将从缓存中删除该过程的所有计划.