我在 13gig 数据库中有一个大型讨厌的存储过程,当我包含实际执行计划时需要 45 分钟才能运行。我从 SSMS 保存查询计划并在SQL Sentry Plan Explorer中打开,但我没有看到任何查询的持续时间:
我已经搜索了整个查询列表并对其进行了搜索,整个列都是空的。我知道这个特定存储过程中的一些查询需要很长时间才能运行。虽然存储过程很大,但它不是具有数百万微秒查询的存储过程,而且我知道某些查询需要几分钟才能运行。
我在 13gig 数据库中有一个大型讨厌的存储过程,当我包含实际执行计划时需要 45 分钟才能运行。我从 SSMS 保存查询计划并在SQL Sentry Plan Explorer中打开,但我没有看到任何查询的持续时间:
我已经搜索了整个查询列表并对其进行了搜索,整个列都是空的。我知道这个特定存储过程中的一些查询需要很长时间才能运行。虽然存储过程很大,但它不是具有数百万微秒查询的存储过程,而且我知道某些查询需要几分钟才能运行。
Martin 是正确的,为了使用 Plan Explorer 查看实际计划的持续时间和其他指标,必须从 Plan Explorer 中运行“获取实际计划”。实际计划 XML 不包含此数据,无论来源如何。
Plan Explorer FREE 在幕后使用 STATISTICS TIME & IO 并将数据与计划树自动关联,而 Plan Explorer PRO 使用动态行集跟踪来达到此目的。后一种方法的优点是能够提供完整的调用堆栈,包括嵌入式动态 SQL 调用的计划和指标。这两种方法都不受语句持续时间的影响。
这就是我们在 Plan Explorer 中保存计划时使用我们自己的 .queryanalysis 文件格式的原因,因为它包含此额外的元数据以及计划 XML。