在命令提示字元執行資料庫測試助理
注意
此工具將於 2024 年 12 月 15 日淘汰。 我們將停止針對任何發生的問題支援此工具,而且不會發出任何錯誤修正或進一步更新。
本文說明了如何在 資料庫測試助理 (DEA) 中擷取追蹤,然後從命令提示字元分析結果。
請注意
欲深入瞭解關於每個 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 <Authetication 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 驗證)。 |
-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 的目標電腦上啟動追蹤擷取。
a. 在 SQL Server Management Studio (SSMS) 中,開啟 <Dea_InstallPath>\Scripts\StartReplayCaptureTrace.sql。
b. 執行
Set @durationInMins=0
,讓追蹤擷取不會在指定時間後自動停止。c. 欲設定每個追蹤檔案的檔案大小上限,請執行
Set @maxfilesize
。 建議大小為 200 MB。d. 編輯
@Tracefile
,設定追蹤檔案的唯一名稱。e. 如果工作負載必須只在特定資料庫上擷取,請編輯
@dbname
以指定資料庫名稱。 根據預設,會擷取整個伺服器上的工作負載。欲針對目標 SQL Server 執行個體重新執行 IRF 檔案,請執行下列命令:
DReplay replay -m "dreplaycontroller" -d "<Folder Path on Dreplay Controller>\IrfFolder" -o -s "SQL2016Target" -w "dreplaychild1,dreplaychild2,dreplaycild3,dreplaychild4"
a. 欲監看狀態,請執行下列命令:
DReplay status -f 1
b. 欲停止重新執行,例如,如果您看到傳遞百分比低於預期,請執行下列命令:
DReplay cancel
停止目標 SQL Server 執行個體上的追蹤擷取。
在 SSMS 中,開啟 <Dea_InstallPath>\Scripts\StopCaptureTrace.sql。
編輯
@Tracefile
,符合執行 SQL Server 之目標電腦上的追蹤檔案路徑。針對執行 SQL Server 的目標電腦執行指令。
使用 InBuilt Replay
如果您使用 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 |
必要。 執行個體之事件檔的檔案路徑。 範例: 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 驗證)。 |
-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 金鑰之 A 執行個體的 Blob URL。 |
--bbu |
具有 SAS 金鑰之 B 執行個體的 Blob URL。 |
另請參閱
- 欲瞭解其他關於使用 DEA 的詳細資訊,請參閱 資料庫測試助理概觀。