在SQL語句調優的時候,大部分都會查看語句執行時間,究竟SQLSERVER顯示出來的統計結果是什么意思?
下面看一下例子
比較簡單的語句:
復制代碼代碼如下:
1 SET STATISTICS TIME ON
2 USE [pratice]
3 GO
4 SELECT * FROM [dbo].[Orders]
結果:
復制代碼代碼如下:
SQL Server 分析和編譯時間:
CPU 時間 = 0 毫秒,占用時間 = 0 毫秒。
SQL Server 執行時間:
CPU 時間 = 0 毫秒,占用時間 = 0 毫秒。
SQL Server 執行時間:
CPU 時間 = 0 毫秒,占用時間 = 0 毫秒。
SQL Server 分析和編譯時間:
CPU 時間 = 0 毫秒,占用時間 = 0 毫秒。
(121317 行受影響)
SQL Server 執行時間:
CPU 時間 = 109 毫秒,占用時間 = 2506 毫秒。
語句的CPU時間分編譯階段和執行階段。優化者要先搞清楚這兩個階段各用了多少CPU資源。
然后,再看有沒有優化降低CPU使用量的可能
上面的CPU時間是指:執行語句的時間
而占用時間是指:從磁盤讀取數據再處理總的使用時間
編譯階段:
SQL Server 分析和編譯時間:
執行階段:
SQL Server 執行時間: