搜尋本站文章

2017-03-04

[SQL Server]:壓力測試工具 OSTRESS


OSTRESS:可以對 SQL Server 做壓力測試的工具,這是以 ODBC 為基礎的多重執行緒的查詢工具。


  • 可以設定平行執行給定 T-SQL 陳述式的執行緒數目,以及指定此執行緒上應該執行陳述式的次數。
  • OSTRESS 會加快執行緒的速度,並平行執行所有執行緒上的陳述式。
  • 所有執行緒完成執行之後,OSTRESS 會報告所有執行緒完成執行所花費的時間。


這是 Microsoft SQL Server support team 內部所使用的公用程式。

請謹慎使用。





使用 OSTRESS

點選「RML Cmd Prompt」命令提示字元視窗。



範例:

(1) 直接執行指定的 T-SQL 陳述式。

使用參數 Q



ostress.exe -Q"Select @@VERSION"


若未指定結果的輸出目錄,將會放置到該使用者帳戶的預設TEMP資料夾內,例如:C:\Users\Administrator\AppData\Local\Temp\output。


(2) 重複執行指定的 T-SQL 陳述式 100 次。

使用參數:r

ostress.exe –Q"SELECT @@VERSION" -r100


(3) 開啟 50 條並行連接,也就是 50 條執行緒(threads),並且重複執行 100 次。

使用參數:n 、 r。執行完成後,會關閉連線。

ostress.exe –Q"SELECT @@VERSION" -n50 –r100


(4) 開啟 50 條並行連接,也就是 50 條執行緒(threads),重複執行 20 次,並且採取安靜模式,抑制所有查詢輸出。

使用參數:q 、 n 、 r。執行完成後,會關閉連線。

ostress.exe –Q"SELECT @@VERSION" -n50 –r20 -q


(5) 直接執行指定的 T-SQL 陳述式,將結果輸出到c:\temp。

使用參數:o。測試後,使用者權限足夠,系統會自動建立資料夾。

ostress.exe -Q"SELECT @@VERSION" –oc:\temp





OSTRESS 參數說明

提醒事項,有區分大小寫。

-S:要連接之 MicrosoftSQL Server 執行個體的名稱
-E:使用 Windows 驗證進行連接 (預設值),如果使用 SQL Server 驗證,請分別使用 -U 和 -P 選項來指定使用者名稱和密碼

-d:資料庫的名稱
-Q:要執行的 T-SQL 陳述式

-n:處理每個輸入檔案/查詢的連接數目
-r:每個連接執行每個輸入檔案/查詢的反覆運算次數

-q:安靜模式;抑制所有查詢輸出


-- OSTRESS 可用參數






請參考以下的安裝抓圖

示範環境:
作業系統:SQL Server 2016。

抓圖歷程:下載與安裝 RML(Replay Markup Language) 公用程式
https://goo.gl/photos/gpq8ENxACvMY1nQk7



OSTRESS 是由 Microsoft CSS SQL Server 支援小組所開發的命令列工具。
此工具可用來平行執行查詢或執行預存程序。

您可以設定平行執行給定 T-SQL 陳述式的執行緒數目,以及指定此執行緒上應該執行陳述式的次數,ostress 會加快執行緒的速度,並平行執行所有執行緒上的陳述式。
所有執行緒完成執行之後,ostress 會報告所有執行緒完成執行所花費的時間。

安裝 OSTRESS
OSTRESS 會當做 RML 公用程式的一部分來安裝,您無法獨立安裝 OSTRESS。

[SQL Server]:下載與安裝 RML(Replay Markup Language) 公用程式
http://sharedderrick.blogspot.tw/2017/03/sql-server-rmlreplay-markup-language.html



參考資料

記憶體內部 OLTP 的範例資料庫
https://msdn.microsoft.com/zh-tw/library/mt465764.aspx

Cumulative Update 2 to the RML Utilities for Microsoft SQL Server Released
https://blogs.msdn.microsoft.com/psssql/2013/10/29/cumulative-update-2-to-the-rml-utilities-for-microsoft-sql-server-released/

安裝 RML 公用程式和 ostress
https://github.com/Azure/azure-content-zhtw/blob/master/articles/sql-database/sql-database-in-memory.md

Description of the Replay Markup Language (RML) Utilities for SQL Server
https://support.microsoft.com/zh-tw/help/944837/description-of-the-replay-markup-language-rml-utilities-for-sql-server

Download RML Utilities for SQL Server (x64) CU4
https://www.microsoft.com/en-us/download/details.aspx?id=4511

SQL Server Stress Testing
http://www.sqlconsulting.com/news1103.htm

[SQL Server]:下載與安裝 RML(Replay Markup Language) 公用程式
http://sharedderrick.blogspot.tw/2017/03/sql-server-rmlreplay-markup-language.html