web-dev-qa-db-fra.com

SQL Server Management Studio, comment obtenir le temps d'exécution en millisecondes

Lorsque je soumets un lot (par exemple, une requête) dans SSMS, je vois le temps qu’il a fallu pour s’exécuter dans la barre d’état. Est-il possible de configurer SSMS pour afficher le temps d'interrogation avec une résolution en millisecondes?

Voici la barre dont je parle avec la section d'intérêt entourée en rouge:

enter image description here

209
Michael Goldshteyn

Je me débattais avec ça jusqu'à ce que je trouve ça ...

http://blog.sqlauthority.com/2009/10/01/sql-server-sql-server-management-studio-and-client-statistics/

De plus, si vous ouvrez la fenêtre Propriétés, vous découvrirez peut-être un "temps écoulé de connexion" magique qui peut vous donner un peu de temps d'exécution ... J'espère que cela vous aidera ...

53
Ymagine First

Ce que vous voulez faire est ceci:

set statistics time on

-- your query

set statistics time off

La sortie ressemblera à quelque chose comme ceci dans votre fenêtre Messages:

Temps d'exécution SQL Server: temps CPU = 6 ms, temps écoulé = 6 ms.

343
user596075

Activez Statistiques du client en effectuant l’une des opérations suivantes:

  • Menu: Requête> Inclure les statistiques du client
  • Barre d'outils: cliquez sur le bouton (à côté de Inclure le temps d'exécution réel)
  • Clavier: Maj-Alt-S

Ensuite, vous obtenez un nouvel onglet qui enregistre les timings, IO données et les montants de lignes, etc. pour (jusqu'à) les 10 dernières exceptions (plus les moyennes!):

enter image description here

111
NickG

Pour obtenir l'heure d'exécution sous forme de variable dans votre proc:

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

-- Write Your Query


SELECT @EndTime=GETDATE()

--This will return execution time of your query
SELECT DATEDIFF(ms,@StartTime,@EndTime) AS [Duration in millisecs] 

ET voir ceci

Mesure de la performance d'une requête: "Coût de la requête du plan d'exécution" vs "Temps nécessaire"

16
atik sarker

J'étais après la même chose et suis tombé sur le lien suivant qui était génial:

http://www.sqlserver.info/management-studio/show-query-execution-time/

Il montre trois manières différentes de mesurer la performance. Tous bons pour leurs propres forces. Celui que j'ai choisi est le suivant:


DECLARE @ Time1 DATETIME

DECLARE @ Time2 DATETIME

SET @ Time1 = GETDATE ()

- Insérer la requête ici

SET @ Time2 = GETDATE ()

SELECT DATEDIFF (MILLISECOND, @ Time1, @ Time2) AS Elapsed_MS


Cela affichera les résultats de votre requête, suivis du temps nécessaire à son exécution.

J'espère que cela t'aides.

9
J-Man

Je ne sais pas s'il faut agrandir la barre d'informations.

Cependant, vous pouvez définir le minutage par défaut pour toutes les requêtes affichées dans l'onglet "Messages".

Lorsque vous vous trouvez dans une fenêtre de requête, accédez à l’élément du menu de requête, sélectionnez "Options de requête", puis "Avancé" dans le groupe "Exécution" et cochez les cases "Définir la durée de la statistique"/"Définir la statistique IO". Ces valeurs apparaîtront alors dans la zone des messages pour chaque requête sans avoir à se rappeler d’activer et de désactiver les statistiques définies.

Vous pouvez également utiliser les touches Maj + Alt + S pour activer les statistiques client à tout moment.

2
luke

Vous pouvez essayer ce code:

USE AdventureWorks2012;
GO
SET STATISTICS TIME ON;
GO
SELECT ProductID, StartDate, EndDate, StandardCost 
FROM Production.ProductCostHistory
WHERE StandardCost < 500.00;
GO
SET STATISTICS TIME OFF;
GO
0
Rohitkumar