SQL - 对象执行统计信息显示两次运行而不是一次运行

时间:2016-04-19 14:29:18

标签: sql-server

所以我在比较两个存储过程的性能

当我查看STATISTICS TIME查询1运行大约2/3的时间作为查询2.当我查看执行计划时,我连续运行两个查询。查询1占批次的43%(39 + 4),查询2占批次的57%

但是,当我查看SSMS中的对象执行统计报告时,它显示查询1比查询2花费更长时间。深入了解详细信息,它显示查询1的执行次数加倍。

我的问题是为什么报告加倍执行?

enter image description here

1 个答案:

答案 0 :(得分:1)

Kendra Little在这篇文章中介绍了统计时间:https://www.brentozar.com/archive/2012/06/tsql-measure-performance-improvements/

基本上,我猜你的查询是并行的,它会显示你的进程中使用的所有核心的统计时间。以下是该博客文章的引用:

  

当您查看为查询执行的CPU时间时,您确实是这样   查看所涉及的所有CPU使用的金额。这意味着如果   你正在查看并行查询,总CPU时间可能会更长   而不是查询的总耗用时间。

     

这不是一个问题 - 它实际上是一件好事   比较表现!