比较两个类似TSQL查询的执行时间

时间:2014-08-19 11:10:57

标签: sql sql-server tsql sql-server-2012

我有2个SQL查询。第二个是第一个的修改版本,它们之间的差别很小。

我想知道两个sqls的执行时间,所以我给了

- 查询1

set statistics time on
    Select...
    .........
set statistics time off

--Result
(2 row(s) affected)

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 39 ms.

- 查询2

set statistics time on
    Select...
    .........
set statistics time off

--Result
(2 row(s) affected)

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.

对于第二个查询,经过的时间是0毫秒,它应该是第一个sql的执行时间周围的一些。它给出了0 ms,因为我在[查询2]之前执行了[查询1]。 如何查看第二次查询的已用时间,我应该删除统计信息还是其他任何内容?

1 个答案:

答案 0 :(得分:3)

sys.dm_exec_query_stats中的last_execution_time列将包含这些信息。此外,它还可以捕获为SQL事件探查器中SQL:StmtCompleted事件的Duration列。

话虽如此,有更多方法可以比较查询,而不仅仅是时间。记住逻辑读取,IO和等待统计数据。我建议您阅读How to analyse SQL Server performance,了解有关如何衡量,衡量什么以及如何比较查询的详细信息。