sql >> Base de Datos >  >> RDS >> Sqlserver

Medir el tiempo que lleva ejecutar una consulta t-sql

Si desea una medición más precisa que la respuesta anterior:

set statistics time on 

-- Query 1 goes here

-- Query 2 goes here

set statistics time off

Los resultados estarán en los Mensajes ventana.

Actualización (2015-07-29):

Por solicitud popular, he escrito un fragmento de código que puede usar para cronometrar la ejecución de un procedimiento almacenado completo, en lugar de sus componentes. Aunque esto solo devuelve el tiempo que tomó la última ejecución, hay estadísticas adicionales devueltas por sys.dm_exec_procedure_stats eso también puede ser de valor:

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