47 votes

Calculer le temps d'exécution d'une requête SQL?

Je suis en fournissant une fonctionnalité de recherche dans mon site web, lorsque l'utilisateur recherche un enregistrement, je veux afficher le temps de la requête prises pour obtenir les résultats de même que google n'. Lorsque l'on recherche quelque chose, alors google affiche combien de temps il faut pour obtenir les résultats?

Pour cela, j'ai déclaré un @commencer variable dans mon SP et de trouver la différence en fin de compte, comme ci-dessous;

DECLARE @start_time DATETIME

SET @start_time = GETDATE()

-- my query
SELECT * FROM @search_temp_table

SELECT RTRIM(CAST(DATEDIFF(MS, @start_time, GETDATE()) AS CHAR(10))) AS 'TimeTaken'

Est-il un autre moyen facile et rapide, ou une seule ligne de requête avec laquelle nous pouvons retrouver le temps d'une requête d'exécution?

Je suis à l'aide de SQL Server 2005.

88voto

Faiz Points 1660

Eh bien, si vous voulez vraiment le faire dans votre base de données, il existe un moyen plus précis, comme indiqué dans MSDN :

 SET STATISTICS TIME ON
 

Vous pouvez également lire ces informations à partir de votre application.

25voto

Navaneeth Points 334

J'ai trouvé celui-ci plus utile et simple

 DECLARE @StartTime datetime,@EndTime datetime   
SELECT @StartTime=GETDATE() 
--Your Query to be run goes here--  
SELECT @EndTime=GETDATE()   
SELECT DATEDIFF(ms,@StartTime,@EndTime) AS [Duration in milliseconds]   
 

20voto

Josh Stodola Points 42410

Nous surveillons cela à partir du code de l'application, simplement pour inclure le temps requis pour établir / fermer la connexion et transmettre des données sur le réseau. C'est assez simple ...

 Dim Durée en tant que TimeSpan
Dim StartTime comme DateTime = DateTime.Now

'Appelez la base de données ici et exécutez votre requête SQL

Duration = DateTime.Now.Subtract (StartTime)
Console.WriteLine (String.Format ("La requête a pris {0} secondes", Duration.TotalSeconds.ToString ()))
Console.ReadLine () 

17voto

Rakesh Sahu Points 141

Veuillez utiliser

 -- turn on statistics IO for IO related 
SET STATISTICS IO ON 
GO
 

et pour l'utilisation du calcul du temps

 SET STATISTICS TIME ON
GO
 

alors, il donnera un résultat pour chaque requête. Dans la fenêtre de messages près de la fenêtre de saisie de la requête.

14voto

XXX Points 141
declare @sttime  datetime
set @sttime=getdate()
print @sttime
Select * from ProductMaster   
SELECT RTRIM(CAST(DATEDIFF(MS, @sttime, GETDATE()) AS CHAR(10))) AS 'TimeTaken'    

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