在SQL Server的存储过程中打开/关闭执行计划

时间:2011-09-07 00:34:25

标签: sql sql-server tsql

在我的存储过程中,它会执行大量的插入/更新查询,并调用几个嵌套的存储过程。

我想禁用执行计划,绕过上面提到的查询,然后将其打开以开始分析我感兴趣的查询。

例如:

...关闭执行计划

INSERT INTO FOO ...
UPDATE FOO...
EXEC usp_FOO

...在此处启用执行计划,然后我就可以开始获得性能统计数据

SELECT * FROM FOO

在SQL Server Management Studio中,我们为性能跟踪/调试提供了“包含实际执行计划”,但如果查询超过100个,则执行计划输出将超出并停止工作。所以我认为应该有一些像'SET EXECUTION PLAN OFF'这样的开关

2 个答案:

答案 0 :(得分:1)

我建议阅读Capture execution plans with SQL Server 2005 Profiler。使用分析器,您可以为存储过程中运行的每个查询生成执行计划,而无需担心SQL Server Management Studio的输出限制。

答案 1 :(得分:0)

您可以使用查询提示强制所有CRUD和MERGE的“RECOMPILE”(忽略缓存计划) - def&这里的示例:http://msdn.microsoft.com/en-us/library/ms181714.aspx