为什么 SqlSentry 计划资源管理器不提供我的查询持续时间?

Jus*_*ing 4 performance sql-server-2008-r2 query-performance

我在一个 13gig 的数据库中有一个很大的令人讨厌的存储过程,当我包含实际的执行计划时,它需要 45 分钟才能运行。我从 SSMS 保存查询计划并在SQL Sentry Plan Explorer 中打开,我没有看到任何查询的持续时间:

我搜索了整个查询列表并重新搜索了它,整个列都是空的。我知道这个特定存储过程中的一些查询需要很长时间才能运行。虽然存储过程很大,但它不是具有数百万微秒查询的存储过程,而且我知道某些查询需要几分钟才能运行。

小智 8

Martin 是正确的,为了使用 Plan Explorer 从实际计划中查看持续时间和其他指标,必须从 Plan Explorer 中运行“Get Actual Plan”。无论来源如何,实际计划 XML 都不包含此数据。

Plan Explorer FREE 在幕后使用 STATISTICS TIME & IO 并将数据与计划树自动关联,Plan Explorer PRO 为此使用动态行集跟踪。后一种方法的优点是能够提供完整的调用堆栈,包括嵌入式动态 SQL 调用的计划和指标。这两种方法都不受语句持续时间的影响。

这就是为什么我们在从计划资源管理器中保存计划时使用我们自己的 .queryanalysis 文件格式,因为它包含这个额外的元数据和计划 XML。