在命令提示字元中執行資料庫測試小幫手
注意
此工具於 2024 年 12 月 15 日 淘汰。 我們已停止針對任何發生的問題支援此工具,而且不會發出任何錯誤修正或進一步更新。
本文說明如何在資料庫實驗輔助工具中擷取追蹤,然後在命令提示字元中分析結果。
若要深入瞭解每個 DEA 作業,請執行下列命令:
deacmd.exe -o <operation> --help
需要作業名稱。 有效的作業 Analysis、StartCapture和 StopCapture。
使用 DEA 命令啟動新的工作負載擷取
若要啟動新的工作負載擷取,請在命令提示字元中執行下列命令:
deacmd.exe -o StartCapture -n <Trace FileName> -x <Trace Format> -h <SQLServerInstance> -f <database name> -e <Encrypt Connection> -m <Authentication Mode> -u <user name> -p <password> -l <Location of Output Folder> -d <duration>
例如:
deacmd.exe -o StartCapture -n sql2008capture -x 0 -h localhost -f adventureworks -e --trust -m 0 -l c:\test -d 60
當您使用 deacmd.exe
命令啟動新的工作負載擷取時,您可以使用下列選項:
選擇 | 描述 |
---|---|
-n 、--name |
必填。 追蹤檔案名稱。 |
-x 、--format |
必填。 追蹤的格式(0 = 追蹤,1 = XEvents)。 |
-d 、--duration |
必填。 擷取的最大持續時間,以分鐘為單位。 |
-l 、--location |
必填。 用於將追蹤或 XEvent 檔案儲存在主電腦上的輸出資料夾位置。 |
-t 、--type |
預設值:0。 SQL Server 的類型 (0 = SqlServer, 1 = AzureSQLDB, 2 = Azure SQL 受控實例)。 |
-h 、--host |
必填。 要啟動擷取的 SQL Server 主機名或實例名稱。 |
-e 、--encrypt |
默認值:True。 加密與 SQL Server 實例的連線。 |
--trust |
默認值:False。 在連接到一個 SQL Server 實例時信任伺服器證書。 |
-f 、--databasename |
篩選追蹤資料庫的名稱;如果未指定,則從所有資料庫開始擷取。 |
-m 、--authmode |
預設值:0。 驗證模式 (0 = Windows,1 = Sql Authentication)。 |
-u 、--username |
用於連接到 SQL Server 的用戶名稱。 |
-p 、--password |
線上到 SQL Server 的密碼。 |
重新執行工作負載擷取
如果您使用 Distributed Replay,請執行下列步驟。
登入 Distributed Replay 控制器電腦。
若要將您使用 DEA 命令擷取的工作負載追蹤轉換成 IRF 檔案,請執行下列命令:
DReplay preprocess -m "dreplaycontroller" -i "Path to first trace file" -d "<Folder path on controller>\IrfFolder"
使用 StartReplayCaptureTrace.sql,在執行 SQL Server 的目標計算機上啟動追蹤擷取。
在 SQL Server Management Studio (SSMS) 中,開啟 <Dea_InstallPath>\Scripts\StartReplayCaptureTrace.sql。
執行
Set @durationInMins=0
,讓追蹤擷取不會在指定的時間之後自動停止。若要設定每個追蹤檔案的檔案大小上限,請執行
Set @maxfilesize
。 建議的大小為 200 MB。編輯
@Tracefile
來設定追蹤檔案的唯一名稱。編輯
@dbname
以指定資料庫名稱,只在需要於特定資料庫上擷取工作負載時使用。 根據預設,會擷取整個伺服器上的工作負載。
若要針對目標 SQL Server 實例重新執行 IRF 檔案,請執行下列命令:
DReplay replay -m "dreplaycontroller" -d "<Folder Path on Dreplay Controller>\IrfFolder" -o -s "SQL2016Target" -w "dreplaychild1,dreplaychild2,dreplaychild3,dreplaychild4"
- 若要監視狀態,請執行下列命令:
DReplay status -f 1
- 若要停止重新執行,例如,如果您看到傳遞百分比低於預期,請執行下列命令:
DReplay cancel
停止目標 SQL Server 實例上的追蹤擷取。
在 SSMS 中,開啟 <Dea_InstallPath>\Scripts\StopCaptureTrace.sql。
編輯
@Tracefile
,以符合執行 SQL Server 之目標電腦上的追蹤檔案路徑。針對執行 SQL Server 的目標電腦執行腳本。
使用內建回放功能
如果您使用 InBuilt Replay,就不需要設定 Distributed Replay。 在命令提示字元中使用 InBuilt Replay 的能力正在進行中。 目前,您可以使用我們的 GUI 來運行 InBuilt Replay 重放功能。
使用 DEA 命令分析追蹤
若要啟動新的追蹤分析,請執行下列命令:
deacmd.exe -o analysis -a <Target1 trace filepath> -b <Target2 trace filepath> -r reportname -h <SQLserverInstance> -e <encryptconnection> -u <username>
例如:
deacmd.exe -o analysis -a C:\Trace\SQL2008Source\Trace.trc -b C:\ Trace\SQL2014Trace\Trace.trc -r upgrade20082014 -h localhost -e
若要檢視這些追蹤檔案的分析報告,您必須使用 GUI 來檢視表和組織計量。 不過,分析資料庫會寫入指定的 SQL Server 實例,因此您也可以直接查詢產生的分析數據表。
使用 DEA 命令分析追蹤時,您可以使用下列選項:
選擇 | 描述 |
---|---|
-a 、--traceA |
必填。 A 實例的事件檔案路徑。 範例:C:\traces\Sql2008trace.trc。 如果有一批檔案,請選取第一個檔案,DEA將自動檢查翻轉檔案。 如果檔案位於 Blob 中,請提供您想要儲存在本機事件檔案的資料夾路徑。 範例:C:\traces\ |
-b 、--traceB |
必填。 B 實例之事件檔案的檔案路徑。 範例:C:\traces\Sql2014trace.trc。 如果有一批檔案,請選取第一個檔案,DEA會自動檢查滾動檔案。 如果檔案位於 Blob 中,請提供您想要儲存在本機事件檔案的資料夾路徑。 範例:C:\traces\ |
-r 、--ReportName |
必填。 目前分析的名稱。 生成的分析報告會以此名稱識別。 |
-t 、--type |
預設值:0。 SQL Server 的類型 (0 = SqlServer, 1 = AzureSQLDB, 2 = Azure SQL 受控實例)。 |
-h 、--host |
必填。 SQL Server 主機名或實例名稱。 |
-e 、--encrypt |
默認值:True。 加密與 SQL Server 實例的連線。 |
--trust |
默認值:False。 連線至 SQL Server 實例時信任伺服器證書。 |
-m 、--authmode |
預設值:0。 驗證模式 (0 = Windows,1 = Sql Authentication)。 |
-u 、--username |
連接至 SQL Server 的用戶名稱。 |
--p |
線上到 SQL Server 的密碼。 |
--ab |
默認值:False。 追蹤 A 的儲存位置位於 blob 中。 如果使用,也必須指定 --abu (Trace A Blob Url) |
--bb |
默認值:False。 追蹤 B 的儲存位置位於 Blob 中。 如果使用,也必須指定 --bbu (Trace B Blob Url) |
--abu |
具有SAS金鑰之實例的 Blob URL。 |
--bbu |
具有SAS金鑰之 B 實例的 Blob URL。 |