在命令提示字元執行資料庫測試助理

本文說明了如何在 資料庫測試助理 (DEA) 中擷取追蹤,然後從命令提示字元分析結果。

注意

欲深入瞭解關於每個 DEA 操作的其他資訊,請執行下列命令:

Deacmd.exe -o <operation> --help

需要操作項目名稱。 有效的操作項目為 AnalysisStartCaptureStopCapture

使用 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,請執行下列步驟。

  1. 登入 Distributed Replay 控制器電腦。

  2. 欲將您使用 DEA 命令擷取的工作負載追蹤轉換成 IRF 檔案,請執行下列命令:

    DReplay preprocess -m "dreplaycontroller" -i "Path to first trace file" -d "<Folder path on controller>\IrfFolder"
    
  3. 使用 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 以指定資料庫名稱。 根據預設,會擷取整個伺服器上的工作負載。

  4. 欲針對目標 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
    
  5. 停止目標 SQL Server 執行個體上的追蹤擷取。

  6. 在 SSMS 中,開啟 <Dea_InstallPath>\Scripts\StopCaptureTrace.sql

  7. 編輯 @Tracefile ,符合執行 SQL Server 之目標電腦上的追蹤檔案路徑。

  8. 針對執行 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。

另請參閱