Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Misura il tempo necessario per eseguire una query t-sql

Se desideri una misurazione più accurata rispetto alla risposta sopra:

set statistics time on 

-- Query 1 goes here

-- Query 2 goes here

set statistics time off

I risultati saranno nei Messaggi finestra.

Aggiornamento (29-07-2015):

A grande richiesta, ho scritto un frammento di codice che è possibile utilizzare per cronometrare l'esecuzione di un'intera stored procedure, anziché dei suoi componenti. Sebbene restituisca solo il tempo impiegato dall'ultima esecuzione, ci sono statistiche aggiuntive restituite da sys.dm_exec_procedure_stats che può anche essere di valore:

-- 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)