查看执行计划时禁用 SQL Server 中的查询工具提示

Posted

技术标签:

【中文标题】查看执行计划时禁用 SQL Server 中的查询工具提示【英文标题】:Disabling the Query Tooltip in SQL Server When Viewing An Execution Plan 【发布时间】:2014-08-27 19:12:03 【问题描述】:

对于 SQL Server 中的非常长的查询,有时执行计划可能会非常复杂,并且需要滚动查询文本和执行计划。

除了在执行计划和 SQL 之间,还有在单个字符串和潜在索引中重复 SQL。当您将鼠标悬停在其中任何一个上时,它将展开以向您显示整个查询或建议的索引。如下图所示。

文本永远不会出现,并且会锁定 SSMS。我没有看到工具提示中显示的 SQL 的好处。

有没有办法关闭它?

【问题讨论】:

【参考方案1】:

解决此问题的一种可能方法是获取 XML 查询计划。然后,您可以将 XML 复制/粘贴到 SQL Sentry's Plan Explorer,免费下载。 Plan Explorer 具有出色的查询计划可视化。

获取实际的 XML 查询计划:

在打开Include Actual Execution Plan 的情况下在SSMS 中运行查询。如果您可以右键单击某处而不触发弹出窗口,则可以选择Show Execution Plan XML...。 您可以运行 T-SQL 命令set statistics xml on。它必须是其批处理中的单个语句(单独运行,或用go 包围它。)如果您尝试此选项,请确保关闭SSMS 的查询计划选项,它们会干扰set 执行计划设置。 运行 SQL Profiler 并在Events Selection 选项卡下检查Show all events,然后检查Performance -> Showplan XML。 您可以从动态管理 (sys.dm_) 视图中读取缓存的执行计划:

(last two options from Justin's nice answer)

select  UseCounts
,       Cacheobjtype
,       Objtype
,       TEXT
,       query_plan
from    sys.dm_exec_cached_plans 
cross apply   
        sys.dm_exec_sql_text(plan_handle)
cross apply   
        sys.dm_exec_query_plan(plan_handle)

【讨论】:

我非常喜欢这个答案,因为它是一个很好的解决方法,但我会稍等片刻,希望在 SSMS 中有一个直接的解决方案。【参考方案2】:

如果您正在寻找 SSMS 集成解决方案,Supratimas 是一个 SSMS 插件,可提供改进的查询计划可视化。

有一个免费的广告支持版本和一个付费的无添加版本。

【讨论】:

我实际上发现本地 SSMS 查询计划查看器就足够了,但是那个庞大的工具提示是一个杀手,几乎会使 SSMS 崩溃。 遗憾的是,我怀疑有没有办法解决这个问题,而且微软不太可能优先考虑这个问题。你试过免费插件吗?如果它有效,它就有效!

以上是关于查看执行计划时禁用 SQL Server 中的查询工具提示的主要内容,如果未能解决你的问题,请参考以下文章

怎么查看sql server累计执行的sql次数

如何查看sqlserver执行计划来判断SQL语句效率

SQL Server - 条件语句的查询执行计划

Sql Server中执行计划的缓存机制

浅析SQL SERVER执行计划中的各类怪相

SQL Server执行计划