如何捕获查询的SQL执行计划。有人说我可以通过系统表检索它们
答案 0 :(得分:1)
正如gbn指出的那样,您可以通过多种不同方式查看查询的执行计划。鉴于您的问题引用了系统表的使用,我假设您正在讨论动态管理视图(DMV),因此您只对目前在计划缓存中的查询计划感兴趣。
如果您有兴趣从计划缓存中识别特定查询的查询计划,那么您可以使用如下表单的查询:
SELECT deqs.plan_handle ,
deqs.sql_handle ,
execText.text
FROM sys.dm_exec_query_stats deqs
CROSS APPLY sys.dm_exec_sql_text(deqs.plan_handle) AS execText
WHERE execText.text LIKE '%QueryText%'
如需进一步阅读,请查看文章DMVs for Query Plan Metadata
如果说您更感兴趣的是检查当前在计划缓存中引用的性能最差的查询的性能,那么您可以利用优秀且免费提供的查询 SQL Server Performance Dashboard Reports.
当然,还有其他方法可以查看查询计划但却不知道您想要实现的目标,这些方法可能不适合您的需求。
答案 1 :(得分:0)
在MSDN上快速搜索可以获得:http://msdn.microsoft.com/en-us/library/ms189747.aspx
希望它有所帮助。