Sql server 重置SQL Server执行计划
我已经到处寻找这个命令……重置SQL Server执行计划的命令是什么?对于存储过程,您可以使用带重新编译的Sql server 重置SQL Server执行计划,sql-server,sql-execution-plan,Sql Server,Sql Execution Plan,我已经到处寻找这个命令……重置SQL Server执行计划的命令是什么?对于存储过程,您可以使用带重新编译的选项。sp\u重新编译将转储现有的查询计划并重新编译过程。 或者,您可以重新启动SQL,这将清除整个执行计划缓存 WITH RECOMPILE将在每次执行时生成一个新的计划。如果要为存储过程重置QEP,则应使用您的问题并不完全清楚您想要的是什么。但除了其他建议之外,DBCC FREEPROCCACHE还清除所有缓存的执行计划。为了清晰起见 执行sp_recompile将“标记”给定的存储过
选项。sp\u重新编译将转储现有的查询计划并重新编译过程。
或者,您可以重新启动SQL,这将清除整个执行计划缓存
WITH RECOMPILE将在每次执行时生成一个新的计划。如果要为存储过程重置QEP,则应使用您的问题并不完全清楚您想要的是什么。但除了其他建议之外,DBCC FREEPROCCACHE还清除所有缓存的执行计划。为了清晰起见
执行sp_recompile
将“标记”给定的存储过程以进行重新编译,该过程将在下次执行时发生
使用带重新编译的选项将导致在每次执行给定存储过程时生成新的执行计划
要清除整个过程,请执行缓存
DBCC FREEPROCCACHE
+1啊哈!!现在事情开始变得有意义了:-)您更擅长解读不清楚的用户消息,我必须明白…请注意,此方法每次执行时都会重新编译给定的存储过程,因此如果您希望强制一次性重新编译,则使用系统存储过程sp_recompile。这是一个很小但很重要的区别,执行sp_recompile不会重新编译给定的存储过程,而是在下次执行时将其标记为重新编译。DBCC FREEPROCCACHE能否仅针对特定的过程执行?@code米兰:是的,您可以从计划/过程缓存中逐出特定的计划句柄(例如,给定存储过程的查询计划)。有关示例,请参见BOL: