Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Mesurer le temps nécessaire pour exécuter une requête t-sql

Si vous souhaitez une mesure plus précise que la réponse ci-dessus :

set statistics time on 

-- Query 1 goes here

-- Query 2 goes here

set statistics time off

Les résultats seront dans les Messages fenêtre.

Mise à jour (2015-07-29) :

À la demande générale, j'ai écrit un extrait de code que vous pouvez utiliser pour chronométrer l'exécution d'une procédure stockée entière, plutôt que ses composants. Bien que cela ne renvoie que le temps pris par la dernière exécution, des statistiques supplémentaires sont renvoyées par sys.dm_exec_procedure_stats cela peut aussi avoir de la valeur :

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