问题
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