我有一个存储过程,它接受xml输入,并且当xml参数明显不同时,似乎无法选择正确的执行计划。
我希望存储过程在每次执行时生成一个新的执行计划,所以当执行计划错误时,我不会得到糟糕的性能。
我可以使用什么命令来实现这一目标?
谢谢!
答案 0 :(得分:1)
将WITH RECOMPILE
添加到存储过程定义中。
答案 1 :(得分:1)
在SP脚本中使用WITH RECOMPILE
提示。
类似的东西:
CREATE PROCEDURE dbo.spname @par varchar(30)
WITH RECOMPILE
AS
Query logic
GO
注意:在RECOMPILE
使用SP level
会导致每次调用时重新编译SP,因此如果您知道SP中的哪一块导致了计划关联,您可以仅使用RECOMPILE
提示而不是重新编译整个SP。