2010-06-22 7 views
4

J'ai une requête que je cours sur deux bases de données équivalentes, mais hébergé sur des serveurs MS SQL 2005 distincts. Je veux mesurer le temps d'une requête sur les deux serveurs, et donc essayé ce qui suit:Que représentent les temps d'exécution SQL Server?

SET STATISTICS TIME ON 
GO 
SELECT TOP 10000 * 
    FROM table 
GO 
SET STATISTICS TIME OFF; 
GO 

et a obtenu le résultat suivant:

SQL Server parse and compile time: 
    CPU time = 0 ms, elapsed time = 2 ms. 

(10000 row(s) affected) 

SQL Server Execution Times: 
    CPU time = 16 ms, elapsed time = 8143 ms. 
SQL Server parse and compile time: 
    CPU time = 0 ms, elapsed time = 0 ms. 

Ma question est, qu'est-ce que le temps d'exécution SQL Server signifie ? S'agit-il de l'exécution de la requête sur la base de données uniquement ou de l'exécution de la requête, y compris du transport des données vers le client exécutant SQL Server Management Studio?

Merci d'avance!

Répondre

3

temps écoulé = temps total pour exécuter la requête (y compris d'attente pour I/O)

temps CPU = temps CPU total.

Un article utile sur le sujet est à http://www.sqlservercentral.com/articles/Performance+Tuning/measuringperformance/1323/

+0

Si je comprends bien l'article, E/S des moyens de lecture vers/à partir du disque et/ou de la mémoire. Autrement dit, ne pas inclure le transport de données sur TCP/IP. Est-ce que cela semble correct? –

+0

Sonne à propos de moi. Cependant, vous devrez peut-être également prendre en compte tout traitement parallèle. Mais il est plus probable que ce soit une E/S de disque. Il y a une discussion intéressante sur les forums de la SSC: http://www.sql-server-performance.com/faq/cpu_elapsed_time_query_performance_p1.aspx –

Questions connexes