我正在尝试测试在我的项目中运行某些查询所需的时间。我正在 Management Studio 中测试查询。
这是我的代码片段:
SET STATISTICS TIME ON
SET STATISTICS IO ON
EXEC <my stored procedure>
SET STATISTICS IO OFF
SET STATISTICS TIME OFF
我不明白我得到的输出是什么:
SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.
SQL Server parse and compile time:
CPU time = 21 ms, elapsed time = 21 ms.
SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.
Table 'Worktable'. Scan count 0, logical reads 0, physical reads 0, page server reads 0, read-ahead reads 0, page server read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob page server reads 0, lob read-ahead reads 0, lob page server read-ahead reads 0.
Table 'product_loadtable'. Scan count 1, logical reads 942, physical reads 0, page server reads 0, read-ahead reads 0, page server read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob page server reads 0, lob read-ahead reads 0, lob page server read-ahead reads 0.
Table 'Workfile'. Scan count 0, logical reads 0, physical reads 0, page server reads 0, read-ahead reads 0, page server read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob page server reads 0, lob read-ahead reads 0, lob page server read-ahead reads 0.
Table 'product_option'. Scan count 2, logical reads 26, physical reads 0, page server reads 0, read-ahead reads 0, page server read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob page server reads 0, lob read-ahead reads 0, lob page server read-ahead reads 0.
Table 'product_description'. Scan count 157, logical reads 628, physical reads 0, page server reads 0, read-ahead reads 0, page server read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob page server reads 0, lob read-ahead reads 0, lob page server read-ahead reads 0.
Table 'barsizes'. Scan count 0, logical reads 314, physical reads 0, page server reads 0, read-ahead reads 0, page server read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob page server reads 0, lob read-ahead reads 0, lob page server read-ahead reads 0.
Table 'product_detail'. Scan count 1, logical reads 17, physical reads 0, page server reads 0, read-ahead reads 0, page server read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob page server reads 0, lob read-ahead reads 0, lob page server read-ahead reads 0.
Table 'product'. Scan count 1588, logical reads 6299, physical reads 0, page server reads 0, read-ahead reads 0, page server read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob page server reads 0, lob read-ahead reads 0, lob page server read-ahead reads 0.
Table 'inventory'. Scan count 1, logical reads 24, physical reads 0, page server reads 0, read-ahead reads 0, page server read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob page server reads 0, lob read-ahead reads 0, lob page server read-ahead reads 0.
Table 'option_value'. Scan count 1, logical reads 3, physical reads 0, page server reads 0, read-ahead reads 0, page server read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob page server reads 0, lob read-ahead reads 0, lob page server read-ahead reads 0.
SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 41 ms.
SQL Server Execution Times:
CPU time = 31 ms, elapsed time = 62 ms.
SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 0 ms.
Completion time: 2023-04-21T09:49:57.7878903-04:00
为什么有这么多 SQL 执行时间 - 它们是累加的吗?我可以把所有的时间都变成一个易于阅读的时间吗?我在这里做错了什么吗?
最佳答案
假设 STATISTICS TIME
是 OFF
在批处理开始时,您可能有:
-
SET STATISTICS IO ON
(CPU 时间 = 0 毫秒,运行时间 = 0 毫秒。) - 解析和编译您的程序(CPU 时间 = 21 毫秒,运行时间 = 21 毫秒。)
- 过程中的第一个语句(CPU 时间 = 0 毫秒,运行时间 = 0 毫秒。)
- 过程中的第二条语句(CPU 时间 = 0 毫秒,运行时间 = 41 毫秒。)
- 程序的总持续时间(CPU 时间 = 31 毫秒,运行时间 = 62 毫秒。)
-
SET STATISTICS IO OFF
(CPU 时间 = 0 毫秒,运行时间 = 0 毫秒。)
您可能想使用SET STATISTICS IO, TIME <ON|OFF>
相反,删除其中 2 个步骤。
关于sql-server - 了解 SQL Server 查询性能测试 - 输出无法理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76073847/