Jeśli chcesz dokładniejszego pomiaru niż powyższa odpowiedź:
set statistics time on
-- Query 1 goes here
-- Query 2 goes here
set statistics time off
Wyniki będą widoczne w Wiadomościach okno.
Aktualizacja (29.07.2015):
Na popularne żądanie napisałem fragment kodu, którego można użyć do określania czasu wykonywania całej procedury składowanej, a nie jej składników. Chociaż zwraca to tylko czas zajęty przez ostatnie uruchomienie, istnieją dodatkowe statystyki zwracane przez sys.dm_exec_procedure_stats
które również mogą mieć wartość:
-- Use the last_elapsed_time from sys.dm_exec_procedure_stats
-- to time an entire stored procedure.
-- Set the following variables to the name of the stored proc
-- for which which you would like run duration info
DECLARE @DbName NVARCHAR(128);
DECLARE @SchemaName SYSNAME;
DECLARE @ProcName SYSNAME=N'TestProc';
SELECT CONVERT(TIME(3),DATEADD(ms,ROUND(last_elapsed_time/1000.0,0),0))
AS LastExecutionTime
FROM sys.dm_exec_procedure_stats
WHERE OBJECT_NAME(object_id,database_id)[email protected] AND
(OBJECT_SCHEMA_NAME(object_id,database_id)[email protected] OR @SchemaName IS NULL) AND
(DB_NAME(database_id)[email protected] OR @DbName IS NULL)