SQL query performance statistics messages returned multiple times

為{幸葍}努か 提交于 2019-12-11 00:52:54

问题


I am running this query 1 on SQL Server management studio and see it returns me like 3 messages, but same when inside stored procedure has nearly 10 - 20 messages from Statistics. Whats happening and why do i see them ?

SET STATISTICS IO,TIME ON;
GO
    SELECT [UserId]
         ,[UserType]
         ,[CreateDT]
         ,[EffectiveDT]
       FROM [dbo].[People] ORDER BY [UserId]
SET STATISTICS IO,TIME OFF;
GO

Messages i receive are below

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

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.
Table 'People'. Scan count 1, logical reads 155, physical reads 0, read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 143 ms.

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 0 ms.

 SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 143 ms.

Is the total elapsed time for the query 143ms + 143ms ?


回答1:


See below

set statistics time on
select * from test
set statistics time off

output:

SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 264 ms..

Now add print statement and some variable

set statistics time on

print' statistics time '
declare @a int
set @a =1

select * from test
set statistics time off

output:

SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 1 ms.

SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 1 ms.

(59 row(s) affected)

(1 row(s) affected)

SQL Server Execution Times:
   CPU time = 0 ms,  elapsed time = 264 ms.

In above piece of code total execution time is 1+1+264.

hope this helps on how it works



来源:https://stackoverflow.com/questions/35913106/sql-query-performance-statistics-messages-returned-multiple-times

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!