擷取資料庫測試助理中的追蹤

使用資料庫測試助理 (DEA) 建立具擷取伺服器事件記錄的追蹤檔案。 擷取的伺服器事件是在特定時間週期中特定伺服器上發生的事件。 每部伺服器必須執行一次追蹤擷取。

開始追蹤擷取之前,請確定您備份所有目標資料庫。

SQL Server 中的查詢快取可能會影響評估結果。 建議您在服務應用程式中重新啟動 SQL Server 服務 (MSSQLSERVER),改善評估結果的一致性。

設定追蹤擷取

  1. 在 DEA 的左側導覽列中,選取相機圖示,然後在 [所有擷取] 頁面,選取 [新增擷取]。

    Create a capture in DEA

  2. 在 [新增擷取] 頁面中 [擷取詳細資料] 下,輸入或選取下列資訊:

    • 擷取名稱:輸入擷取追蹤檔案的名稱。

    • 格式:指定擷取的格式(Trace 或 XEvents)。

    • 持續時間:選取想要執行追蹤擷取的時間長度(以分鐘為單位)。

    • 擷取位置:選取追蹤檔案的目的地路徑。

      注意

      追蹤檔案的檔案路徑必須在執行 SQL Server 的電腦。 如果未針對特定帳戶設定 SQL Server 服務,服務可能需要寫入指定資料夾的寫入權限,才能寫入追蹤檔案。

  3. 選取 [是,我已手動備份…] 核取方塊,以驗證您已進行備份。

  4. [擷取詳細資料] 下,輸入或選取下列資訊:

    • 伺服器類型:指定 SQL Server 的類型(SqlServerAzureSqlDbAzureSqlManagedInstance)。
    • 伺服器名稱:指定 SQL Server 的伺服器名稱或 IP 位址。
    • 驗證類型‭‬:選取 [‭‬Windows‭‬] 作為驗證類型。
    • 資料庫名稱:輸入要啟動資料庫追蹤之資料庫的名稱。 如果您未指定資料庫,則會在伺服器上的所有資料庫上擷取追蹤。
  5. 針對您的案例,選取或取消選取 [加密連線] 和 [信任伺服器憑證] 核取方塊。

    New Capture page

啟動追蹤擷取

  1. 輸入或選取必要資訊後,請選取 [開始] 以起始追蹤擷取。

    如果您輸入的資訊有效,追蹤擷取過程就會開始。 否則,具有無效項目的文字輸入框會以紅色反白顯示。 如果您遇到錯誤,請更正任何必要的項目,然後再次選取 [開始]。

    當追蹤擷取正在執行時,會在 [擷取詳細數據] 下顯示追蹤擷取過程的狀態和進度。

    Monitor capture progress

  2. 當完成執行追蹤擷取,新的追蹤 (.trc) 檔案會儲存在您初始設定期間特定的 [擷取位置]。

    Completed trace capture

    追蹤檔案包括 SQL Server 資料庫活動的追蹤結果。 .trc 檔案的設計旨於提供關於 SQL Server 偵測和報告之錯誤的詳細資訊。

關於追蹤擷取的常見問題集

以下是關於 DEA 中追蹤擷取的一些常見問題。

問:當我在實際執行資料庫上執行追蹤擷取時,會擷取哪些事件?

下表列出 DEA 針對追蹤收集的事件和對應的資料行:

事件名稱 文字資料 (1) 二進位資料 (2) 資料庫 ID (3) 主機名稱 (8) 應用程式名稱 (10) 登入名稱 (11) SPID (12) 開始時間 (14) 結束時間 (15) 資料庫名稱 (35) 事件順序 (51) IsSystem (60)
RPC:完成(10) * * * * * * * * * * *
RPC:開始(11) * * * * * * * * * *
RPC 輸出參數 (100) * * * * * * * * * *
SQL:BatchCompleted (12) * * * * * * * * * * *
SQL:BatchStarting (13) * * * * * * * * * *
稽核登入 (14) * * * * * * * * * * *
稽核登出 (15) * * * * * * * * * * *
ExistingConnection (17) * * * * * * * * * * *
CursorOpen (53) * * * * * * * * * *
CursorPrepare (70) * * * * * * * * * *
Prepare SQL (71) * * * * * * * * *
Exec Prepared SQL (72) * * * * * * * * *
CursorExecute (74) * * * * * * * * * *
CursorUnprepare (77) * * * * * * * * * *
CursorClose (78) * * * * * * * * * *

問:追蹤擷取執行時,我的實際執行伺服器是否有效能影響?

是,追蹤收集期間效能影響最小。 在我們的測試中,發現大約 3% 的記憶體壓力。

問:在實際執行工作負載上擷取追蹤需要何種權限?

  • 在 DEA 應用程式中執行追蹤操作的 Windows 使用者,執行 SQL Server 的電腦必須具有系統管理員權限。
  • 在執行 SQL Server 的電腦上所使用的服務帳戶必須具有指定追蹤檔案路徑的寫入權限。

問:我可以擷取整個伺服器的追蹤,還是只能在單一資料庫上擷取追蹤嗎?

您可以使用 DEA 來擷取伺服器中的所有資料庫或單一資料庫的追蹤。

問:我已在實際執行環境中設定連結的伺服器。 這些查詢是否顯示在追蹤中?

如果您正在執行整個伺服器的追蹤擷取,追蹤會擷取所有查詢,包括連結的伺服器查詢。 欲執行整個伺服器的追蹤擷取,請將 [新增擷取] 下的 [資料庫名稱] 方塊留白。

問:實際執行工作負載追蹤的最低建議時間為何?

我們建議選擇最能代表您的全部工作負載的時間。 如此一來,分析就會在工作負載中的所有查詢上執行。

問:在開始追蹤擷取前,先進行資料庫備份有多重要?

開始追蹤擷取之前,請確定您備份所有目標資料庫。 目標 1 和目標 2 中擷取的追蹤會重新執行。 如果資料庫狀態不相同,實驗的結果就會出現偏差。

問:我可以收集 XEvents 而非追蹤,是否可以重新執行 XEvents?

是。 DEA 支援 XEvents。 下載最新版本的 DEA,並試試看。

針對追蹤擷取進行疑難排解

如果您在執行追蹤擷取時看到錯誤,請確認:

  • 執行 SQL Server 之電腦的名稱有效。 欲確認,請嘗試使用 SQL Server Management Studio (SSMS) 連線到執行 SQL Server 的電腦。
  • 您的防火牆設定不會封鎖執行 SQL Server 之電腦的連線。
  • 使用者具有 [重新執行常見問題] 中列出的權限。
  • 追蹤名稱未遵循標準變換慣例 (Capture_1)。 請改為嘗試 Capture_1A 或 Capture1 之類的追蹤名稱。

以下是您可能會看到的一些可能錯誤,以及解決這些錯誤的解決方案:

可能錯誤 解決方案
無法在目標 SQL Server 上啟動追蹤,請檢查您是否具有必要權限,且 SQL Server 帳戶是否具有指定追蹤檔案路徑 Sql 錯誤碼 (53) 的寫入權限 執行 DEA 工具的使用者必須能夠存取執行 SQL Server 的電腦。 使用者必須受指派系統管理員角色。
無法在目標 SQL Server 上啟動追蹤,請檢查您是否具有必要權限,且 SQL Server 帳戶是否具有指定追蹤檔案路徑 Sql 錯誤碼 (19062) 的寫入權限 指定的追蹤路徑可能不存在,或資料夾不具備執行 SQL Server 服務帳戶的寫入權限(例如:網絡服務)。 必須存在路徑,且必須具備啟動追蹤的必要權限。
目前在目標伺服器上執行 DEA 追蹤。 作用中追蹤已在目標伺服器上執行。 當伺服器範圍的追蹤已執行,即無法啟動新的追蹤。
無法開啟要求的資料庫來擷取追蹤。 這個錯誤可能是因為資料庫名稱不正確所造成。 指定的資料庫不存在,或目前使用者無法存取。 使用正確的資料庫名稱。

如果您看到任何其他標記為 [Sql 錯誤碼] 的錯誤,請參閱 [資料庫引擎 錯誤] 以取得詳細描述。

另請參閱