顯示具有 MS_SQL_TOOL 標籤的文章。 顯示所有文章
顯示具有 MS_SQL_TOOL 標籤的文章。 顯示所有文章

2019年4月5日 星期五

SQL Server Stress pressure testing tool

env: Windows Server 2016
        SQL Server 2016 SP2

這次介紹的壓測軟體"Stress",是由sp_whoisactive 作者"Adam Machanic"所開發,而且已釋出到開源專案平臺 GitHub 上。

下載來源:
https://github.com/ErikEJ/SqlQueryStress

這次我們要測試的版本是0.9.7.61

Stress偏向測試script在多人同時使用時,script反應時間與使用狀況
與RML有點不一樣,可以看到多人同時執行的狀態,各自獨立session連到db,沒有connection pool概念。執行完session即結束。

1.開始安裝"Stress"

安裝步驟一


安裝步驟二
採用預設安裝




















點選"Next"進行安裝





















2.開啟"Stress"
說明:
1.Clean Buffers : DBCC DROPCLEANBUFFERS
2.Free Cache : DBCC FREEPROCCACHE
3.Connection Timeout : 目標伺服器的連線逾時,超過時將回報錯誤
4.Connection Pooling : 啟用或是停用 Connection Pooling,預設啟用
5.Command Timeout : 指令逾時,超過時將回報錯誤
6.Collect I/O Statistics 與 Collect Time Statistics : 是否要收集 I/O 與 Time 統計值
7.Force Client Retrieval of Data : 強迫查詢的資料必須使用 SQL Server 主機的網路資源傳回


























3.設定"Stress"連線
設定連線測試主機,並用SQL帳號認證
設定測試DB





















































4.輸入測試查詢指令
command:
SELECT * FROM dbo.test01
number of Iteration 設定 20
number of thread 設定 40


























5.輸入測試procedure
command:
EXECUTE dbo.TESTQUERY
number of Iteration 設定 300
number of thread 設定 40


























6.測試connection pool是否實現
command:
EXECUTE dbo.TESTQUERY
number of Iteration 設定 800
number of thread 設定 100


























查詢所有session數量
command:
SELECT * FROM SYS.dm_exec_sessions WHERE login_name='test'

session共有102,包含了查詢的session















2019年3月20日 星期三

SQL Server RML Utilities pressure testing tool

env: Windows Server 2016
         SQL Server 2016 SP2

 RML Utilities是一個好用的簡易壓測工具,這個工具已經有點歷史,這次在新環境安狀測試看看。

1.這次使用的版本是CU4
RML Utilities for SQL Server (x64) CU4
下載連結:
https://www.microsoft.com/en-us/download/details.aspx?id=4511

Supported Operating System
Windows 7, Windows 8, Windows 8.1, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2

2.安裝RML Utilities for SQL Server (x64) CU4
 
這次省略說明。附上安裝步驟畫面
 




















可以順利在Windows Server 2016安裝



3.檢查安裝程式,並開始使用RML

安裝程式清單

















點選"RML Cmd Prompt"













在"RML Cmd "輸入"ostress /?",顯示相關指令參數



















4.使用"RML Utilities"進行壓力測試

在RML指令視窗輸入以下指令:做查詢Server Name的測試
command:
ostress.exe -Q"Select @@VERSION"



這裡有一點要留意,在RML產生2個檔案,一個是LOG檔,一個是OUT檔。
LOG檔記錄執行結果。OUT檔紀錄SCRIPT結果。以我們這個測試案例,就是SELECT @@VERSION的產出結果。
檔案儲存目錄:
C:\Users\Administrator\AppData\Local\Temp\output\


 5.測試範例二
 command:
 ostress.exe -Q"SELECT @@VERSION" -r10

 -r 10 代表執行10次













6.測試範例三
command:
ostress.exe -Q"SELECT @@VERSION" -r10 -q

-q : 不會輸出查詢結果到dos 與檔案




7.測試範例四
command:
ostress.exe -dTBTEST03 -Q"SELECT * FROM dbo.test01" -r20 -n40

ostress.exe -SWIN-LON676ITMD5 -Usa -Ppa$$w0rd -dTBTEST03 -Q"EXECUTE dbo.TESTQUERY" -r20 -n40

RML跟sqlcmd很接近,也可以使用遠端連線進行壓測,留意指令格式即可。

-n 代表使用多Thread進行

以下是執行command後,查詢連線數
其中有一連線是查詢連線,所以有41個





這次測試安裝驗證到此一個段落!!!