【问题标题】:insert SET STATISTICS TIME into a table将 SET STATISTICS TIME 插入表中
【发布时间】:2013-07-09 23:34:54
【问题描述】:

假设我有以下声明:

SET STATISTICS TIME ON;
Select * from myTable
SET STATISTICS TIME OFF;

这会在 ssms 的消息选项卡中产生以下结果:

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

如何将经过的时间值读入表/临时表/表变量?

我想这样做的原因是因为我正在使用不同参数的循环中测试查询。为了更容易阅读经过时间的结果,我想将它们插入一个表中,然后比较多个表的多个脚本版本。

【问题讨论】:

  • 为什么不直接使用SQL Sentry Plan Explorer 来执行查询的不同变体?除了初始设计(提供更有意义的执行计划)之外,它还为每个语句提供各种运行时指标,包括 I/O 和持续时间。

标签: sql sql-server sql-server-2008-r2 ssms


【解决方案1】:

您可以通过自己计算来读取经过的时间:

declare @StartTime datetime = getdate();
Select * from myTable;
declare @Dur datetime = getdate() - @StartTime;

然后你可以使用@Dur 来做你想做的事。

对于更详细的时间安排,我会听从 Aaron 的建议。

【讨论】:

  • 如果我运行 100 个查询并且我需要将每个查询的结果插入到表中。
猜你喜欢
  • 2011-06-27
  • 2020-10-18
  • 2014-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多