在資料庫測試助理中擷取追蹤
注意
此工具於 2024 年 12 月 15 日停用。 我們已停止針對任何發生的問題支援此工具,而且不會發出任何錯誤修正或進一步更新。
您可以使用資料庫測試小幫手 (DEA) 建立具有所擷取伺服器事件的記錄檔。 擷取的伺服器事件是在特定時間週期內在特定伺服器上發生的事件。 追蹤擷取必須在每部伺服器執行一次。
開始追蹤擷取之前,請確定您備份所有目標資料庫。
SQL Server 中的查詢快取可能會影響評估結果。 建議您在服務應用程式中重新啟動 SQL Server 服務 (MSSQLSERVER),以改善評估結果的一致性。
設定追蹤捕捉
在 DEA 的左側導覽列中,選取相機圖示,然後在 [所有擷取] 頁面上,選取 [[新增擷取]。
在 [新增擷取] 頁面上,於 [擷取詳細數據] 底下,輸入或選取下列資訊:
擷取名稱:輸入擷取追蹤檔案的名稱。
格式:指定要擷取的格式(追蹤或 XEvents)。
持續時間:選取您想要執行追蹤擷取的時間長度(以分鐘為單位)。
擷取位置:選取追蹤檔案的目的地路徑。
注意
追蹤檔案的檔案路徑必須位於執行 SQL Server 的電腦上。 如果未針對特定帳戶設定 SQL Server 服務,服務可能需要寫入指定資料夾的寫入許可權,才能寫入追蹤檔案。
請勾選 是,我已經手動進行備份... 複選框,以確認您已經備份。
在 [擷取詳細數據下,輸入或選取下列資訊:
- 伺服器類型:指定 SQL Server 的類型(SqlServer、AzureSqlDbAzureSqlManagedInstance)。
- 伺服器名稱:指定 SQL Server 的伺服器名稱或 IP 位址。
- 驗證類型:針對驗證類型,選取 [Windows ]。
- 資料庫名稱:輸入要啟動資料庫追蹤的資料庫名稱。 如果您未指定資料庫,則會在伺服器上的所有資料庫上擷取追蹤。
選取或取消選取 [加密連線],並視情況 信任伺服器證書 複選框。
啟動追蹤擷取
輸入或選取必要資訊之後,請選取 [開始] 以起始追蹤擷取。
如果您輸入的資訊有效,追蹤擷取程式就會開始。 否則,具有無效輸入的文字框會以紅色反白顯示。 如果您遇到錯誤,請更正任何必要的項目,然後再次選取 開始。
當追蹤擷取正在執行時,在 [擷取詳細數據]下,就會顯示追蹤擷取進程的狀態和進度。
當追蹤擷取完成執行時,新的追蹤 (.trc) 檔案會儲存在您初始設定期間特定 擷取 位置。
追蹤檔案包含 SQL Server 資料庫活動的追蹤結果。 .trc 檔案的設計目的是提供 SQL Server 偵測和報告之錯誤的詳細資訊。
追蹤擷取常見問題解答
以下是有關 DEA 系統中追蹤記錄的一些常見問題。
當我在生產資料庫上執行追蹤擷取時,會擷取哪些事件?
以下表格列出了 DEA 針對追蹤收集的事件及其對應的欄位資料:
事件名稱 | 文字資料 (1) | 二進位資料 (2) | 資料庫識別碼 (3) | 主機名稱 (8) | 應用程式名稱 (10) | 登入名稱 (11) | SPID (12) | 開始時間 (14) | 結束時間 (15) | 資料庫名稱 (35) | 事件順序 (51) | IsSystem (60) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
RPC:Completed(10) | 不 | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 |
RPC:Starting (11) | 不 | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 | 不 | 是的 | 是的 | 是的 |
RPC 輸出參數 (100) | 是的 | 不 | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 | 不 | 是的 | 是的 | 是的 |
SQL:BatchCompleted (12) | 是的 | 不 | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 |
SQL:BatchStarting (13) | 是的 | 不 | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 | 不 | 是的 | 是的 | 是的 |
稽核登入 (14) | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 | 不 | 是的 | 是的 | 是的 |
稽核註銷 (15) | 是的 | 不 | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 |
ExistingConnection (17) | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 | 不 | 是的 | 是的 | 是的 |
CursorOpen (53) | 是的 | 不 | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 | 不 | 是的 | 是的 | 是的 |
CursorPrepare (70) | 是的 | 不 | 是的 | 是的 | 是的 | 是的 | 是的 | 是的 | 不 | 是的 | 是的 | 是的 |
準備 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 服務之帳戶的寫入許可權(例如 NETWORK SERVICE)。 路徑必須存在,而且必須具有啟動追蹤的必要許可權。 |
目前 DEA 追蹤正在目標伺服器上執行。 | 作用中的追蹤已在目標伺服器上執行。 當全伺服器追蹤已經執行時,您無法啟動新的追蹤。 |
無法開啟要求的資料庫來記錄追蹤。 此錯誤可能是因為資料庫名稱不正確所造成。 | 指定的資料庫不存在,或目前用戶無法存取。 使用正確的資料庫名稱。 |
如果您看到標示為 Sql 錯誤碼的任何其他錯誤,請參閱 Database Engine 事件和錯誤 以取得詳細描述。