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

本文說明如何在 Database Experimentation Assistant (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 Controller 電腦。

  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 必要。 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 驗證) 。
-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。

另請參閱