205 votes

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

J'ai deux requêtes t-sql utilisant SqlServer 2005. Comment puis-je mesurer le temps qu'il faut pour que chacune s'exécute?

Utiliser mon chronomètre ne suffit pas.

306voto

Michael Goldshteyn Points 24679

Si vous voulez 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 la fenêtre Messages .

225voto

spencer7593 Points 29263

Une approche simpliste pour mesurer le «temps écoulé» entre les événements consiste à saisir simplement la date et l'heure actuelles.

Dans SQL Server Management Studio

 SELECT GETDATE();
SELECT /* query one */ 1 ;
SELECT GETDATE();
SELECT /* query two */ 2 ; 
SELECT GETDATE(); 
 

Pour calculer les temps écoulés, vous pouvez saisir ces valeurs de date dans des variables et utiliser la fonction DATEDIFF:

 DECLARE @t1 DATETIME;
DECLARE @t2 DATETIME;

SET @t1 = GETDATE();
SELECT /* query one */ 1 ;
SET @t2 = GETDATE();
SELECT DATEDIFF(millisecond,@t1,@t2) AS elapsed_ms;

SET @t1 = GETDATE();
SELECT /* query two */ 2 ;
SET @t2 = GETDATE();
SELECT DATEDIFF(millisecond,@t1,@t2) AS elapsed_ms;
 

C'est juste une approche. Vous pouvez également obtenir les temps écoulés pour les requêtes à l'aide de SQL Profiler.

28voto

atik sarker Points 198

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

- Écrivez votre requête

SELECT @ EndTime = GETDATE ()

- Cela renverra l'heure d'exécution de votre requête SELECT DATEDIFF (NS, @ StartTime, @ EndTime) AS [Durée en millisecondes]

Vous pouvez aussi voir cette solution

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X