SQLQueryStress是SQL Server資料庫的一個壓測工具,這裡不打算介紹這款工具,而是淺析一下SQLQueryStress工具的一些指標涵義。如有疏漏或不足之處,敬請指正。 如下截圖所示,你會看到下麵一些指標 那麼對應指標的具體含義是啥呢?下麵表格整理了這些指標的含義; 很多同學對於C ...
SQLQueryStress是SQL Server資料庫的一個壓測工具,這裡不打算介紹這款工具,而是淺析一下SQLQueryStress工具的一些指標涵義。如有疏漏或不足之處,敬請指正。 如下截圖所示,你會看到下麵一些指標
那麼對應指標的具體含義是啥呢?下麵表格整理了這些指標的含義;
很多同學對於Client Seconds /Iteration(Avg)與Actual Seconds/Iteration(Avg)兩個指標有所疑惑,搞不清它們的區別。關於它們的區別,官方文檔[1]的簡單描述如下:
There are three types of time statistics collected and displayed by the tool. The Client Seconds/Iteration box displays the average runtime over all iterations, as recorded on the client. The CPU Seconds/Iteration and Actual Seconds/Iteration boxes both display time statistics reported by SQL Server. The former is the average reported CPU time, and the latter is the average reported total query time. Another statistic collected and shown by the tool is the number of logical reads (which is an amalgamation of buffer cache and disk reads), in the Logical Reads/Iteration box.
其實,Client Seconds /Iteration(Avg)這個指標是SQLQueryStress這個工具統計的,所有線程執行完這個SQL的總時間/SQL執行次數。而Actual Seconds/Iteration(Avg)是SQL Server端統計的,一般是你開啟了時間統計信息後伺服器端統計的數據。
SET STATISTICS TIME ON;
SELECT * FROM [Maint].[JobHistoryDetails]
一般而言,Client Seconds /Iteration(Avg)指標的值大於或等於Actual Seconds/Iteration(Avg)指標的值,主要是因為查詢數據從Server端傳輸到客戶端,也是需要一定的時間的,這個時間跟你查詢的數據量以及網路傳輸速度有關係。
參考資料
1: https://github.com/ErikEJ/SqlQueryStress/wiki