如何获取查询的SQL执行计划,有人告诉我可以通过系统表获取
nlejzf6q1#
正如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.当然,还有其他查看查询计划的方法,但是如果不确切知道您要实现的是什么,这些方法可能不适合您的需要。
9rygscc12#
在MSDN上快速搜索将获得以下信息:http://msdn.microsoft.com/en-us/library/ms189747.aspx希望有帮助。
qoefvg9y3#
这个问题可以更清楚一些,但我想有些人可能会来这里寻找获取查询执行计划的最简单方法捕获查询执行计划的最简单方法是单击“Include Actual Execution Plan”按钮,然后在SSMS上执行查询
结果将与查询结果一起显示为选项卡
3条答案
按热度按时间nlejzf6q1#
正如gbn所指出的,您可以通过多种不同的方式来查看查询的执行计划。鉴于您的问题涉及到系统表的使用,我假设您正在谈论动态管理视图(DMV),因此您也只对当前在计划缓存中的查询计划感兴趣。
如果您有兴趣从计划缓存中标识特定查询的查询计划,则可以使用如下格式的查询:
有关详细阅读,请参阅文章DMVs for Query Plan Metadata
如果您对检查计划缓存中当前引用的性能最差的查询的性能更感兴趣,那么可以使用免费提供的优秀的SQL Server Performance Dashboard Reports.
当然,还有其他查看查询计划的方法,但是如果不确切知道您要实现的是什么,这些方法可能不适合您的需要。
9rygscc12#
在MSDN上快速搜索将获得以下信息:http://msdn.microsoft.com/en-us/library/ms189747.aspx
希望有帮助。
qoefvg9y3#
这个问题可以更清楚一些,但我想有些人可能会来这里寻找获取查询执行计划的最简单方法
捕获查询执行计划的最简单方法是单击“Include Actual Execution Plan”按钮,然后在SSMS上执行查询
结果将与查询结果一起显示为选项卡