Как получить правильное время выполнения запроса в SQL Server?

Мне нужно получить время выполнения моего запроса. Я использую

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

 -- execute my query here

set @endtime = GETDATE()
select @[email protected]

Но выход идет как 1900-01-01 00:02:10.707

Мне нужна только часть времени.

Ответ 1

Используйте это:

set statistics time on
--query
set statistics time off

перейдите на вкладку "Сообщение", чтобы увидеть следующее сообщение:

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

Ответ 2

SET STATISTICS TIME { ON | OFF }

Example     
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

Ответ 4

Используйте время тип данных, который доступен в SQL Server 2008 и выше

Теперь теги правильные, и это SQL Server 2005...

select CONVERT(varchar(12), @[email protected], 114)

Ответ 5

DECLARE @StartTime datetime,@EndTime datetime   
SELECT @StartTime=GETDATE() 

- Ваш запрос будет запущен здесь -

SELECT @EndTime=GETDATE()   
SELECT DATEDIFF(ms,@StartTime,@EndTime) AS [Duration in microseconds]  

Ответ 6

Обновление для тех, кто использует более поздние версии SQL Server, чем OP: в SQL Server 2017 (версия 14.0) время, затраченное на запрос, и количество затронутых строк по умолчанию отображаются на вкладке "Сообщения". A screen clip after I ran a query, I'm using Azure Data Studio

Ответ 7

Вы должны были использовать 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, которая была объяснена здесь.