查看执行计划时禁用 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 中的查询工具提示的主要内容,如果未能解决你的问题,请参考以下文章