21

我需要获取查询的执行时间。我在用

declare @starttime datetime
declare @endtime datetime
set @starttime =getdate()   

 -- execute my query here

set @endtime = GETDATE()
select @endtime-@starttime

但输出是1900-01-01 00:02:10.707

我只需要时间部分。

4

8 回答 8

58

用这个:

set statistics time on
--query
set statistics time off

然后转到“消息”选项卡以查看如下消息:

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 165 ms.
于 2014-01-29T17:46:35.780 回答
12

设置统计时间选项:

SET STATISTICS TIME { ON | OFF }

例子:

USE AdventureWorks2012;
GO 

SET STATISTICS TIME ON;    
GO

SELECT ProductID, StartDate, EndDate, StandardCost 
FROM Production.ProductCostHistory
WHERE StandardCost < 500.00;    
GO

SET STATISTICS TIME OFF;    
GO
于 2014-04-15T07:32:38.317 回答
3

在您的差异之后尝试这种不同的转换:

SELECT CONVERT(VARCHAR(12),@endtime-@starttime, 108)  -- 00:02:10
SELECT CONVERT(VARCHAR(12),@endtime-@starttime, 114)  -- 00:02:10.707

108和114代表日期转换的格式类型,请参考http://msdn.microsoft.com/it-it/library/ms187928.aspx

于 2013-05-09T10:14:24.960 回答
3
声明 @StartTime 日期时间,@EndTime 日期时间   
选择 @StartTime=GETDATE()

--您要运行的查询在这里--

选择 @EndTime=GETDATE()   
SELECT DATEDIFF(ms,@StartTime,@EndTime) AS [持续时间,以毫秒为单位]  
于 2013-09-25T10:23:43.233 回答
3

使用SQL Server 2008 及更高版本中可用的时间数据类型

现在标签是正确的,这是 SQL Server 2005 ...

select CONVERT(varchar(12), @endtime-@starttime, 114)
于 2013-05-09T10:09:45.167 回答
3

您应该习惯于DATEDIFF(MICROSECOND, @starttime, @endtime)以毫秒为单位获取经过的时间,因此您的查询应该更改为如下内容:

DECLARE @starttime datetime
DECLARE @endtime datetime

SET @starttime =getdate()   

-- execute my query here

SET @endtime = GETDATE()

SELECT DATEDIFF(MICROSECOND, @starttime, @endtime)

Include Client Statistics虽然您可以使用已在此处解释的名为的内置功能。

于 2019-09-05T08:48:38.873 回答
2

对于那些使用比 OP 更高版本的 SQL Server 的用户的更新:在 SQL Server 2017(版本 14.0)中,查询所用的时间和受影响的行数默认显示在消息选项卡下。 运行查询后的屏幕剪辑,我正在使用 Azure Data Studio

于 2019-07-02T07:14:52.580 回答
0

在 SSMS 中,在菜单栏中:转到

1.查询>查询选项>高级>设置统计时间

2.查询>查询选项>高级>SET STATISTICS IO

这将使输出在您的消息窗口中看起来像这样:

SQL Server 解析和编译时间:CPU 时间 = x 毫秒,运行时间 = y 毫秒。

SQL Server 执行时间:CPU 时间 = x 毫秒,已用时间 = y 毫秒。

于 2021-09-14T13:52:12.850 回答