2011-01-30 87 views
1

如何为查询捕获SQL执行计划。有人告诉我,我可以取回他们通过系统表SQL服务器执行计划

+0

对于所有查询?调整一个查询?有几种方法,它取决于你将如何使用计划数据 – gbn 2011-01-30 11:33:51

回答

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.


当然还有其他方法来查看查询计划,但不知道它到底是什么,你正在努力实现的,这些可能不适合您的需求。