適用於:SQL Server
Azure SQL 受控執行個體
SQL Server Profiler 是一個介面,可用來建立及管理追蹤,以及分析及重新執行追蹤結果。 事件會儲存在追蹤檔案中,之後你可以分析或用來重複一連串特定步驟來診斷問題。
當嘗試從 SQL Server Profiler 連線至 Azure SQL 資料庫時,會錯誤地擲回具誤導性的錯誤訊息,如下所示:
To run a trace against SQL Server, you must be a sysadmin fixed server role member or have the ALTER TRACE permission.
訊息應該會指出 SQL Server Profiler 不支援 Azure SQL Database。
淘汰通知
重要
SQL 追蹤和 SQL Server Profiler 已淘汰。 建議改用 延伸事件 。 SQL Server 的未來版本將移除此功能。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。
Microsoft.SqlServer.Management.Trace包含 SQL Server Trace 與 Replay 物件的命名空間也已棄用。 不過,Analysis Services 工作負載依然受支援。
欲了解更多延伸 賽事資訊,請參閱以下文章:
- 快速入門:擴展事件
- 對於 SQL Server Management Studio,請使用 XEvent Profiler
- 對於 Visual Studio Code 的 MSSQL 擴充功能,請使用 Query Profiler (Preview)。
分析工具在哪裡?
你可以在 Run SQL Server Profiler 裡啟動 Profiler。
擷取並重播追蹤資料
下表展示了你可以在 SQL Server 中擷取並重播追蹤資料的功能。
| 功能/目標工作量 | 關聯引擎 | Analysis Services |
|---|---|---|
| 追蹤捕捉 | SQL Server Management Studio 中的擴充事件概觀圖形用戶介面 | SQL Server 分析工具 |
| 追蹤回放 | <SQL Server Distributed Replay 概觀> | SQL Server 分析工具 |
使用 SQL Server Profiler
Microsoft SQL Server Profiler 是 SQL 追蹤的圖形化使用者介面,可用來監視資料庫引擎或 Analysis Services 的執行個體。 您可以擷取每一個事件的相關資料,並將資料儲存至檔案或資料表,以供稍後分析。 例如,您可以監視生產環境,查看哪些預存程序由於執行速度過慢而影響效能。 使用 SQL Server Profiler 進行以下活動:
逐步分析問題查詢來找出問題原因。
尋找並診斷運行速度緩慢的查詢。
擷取造成問題的 Transact-SQL 陳述式系列。 之後,已儲存的追蹤可以在測試伺服器上複製問題,然後診斷該問題。
監視 SQL Server 的效能,從而調整工作負載。 如需有關針對資料庫工作負載來微調實體資料庫設計的資訊,請參閱< Database Engine Tuning Advisor>。
將效能計數器相互關聯以診斷問題。
SQL Server Profiler 也支援稽核在 SQL Server 執行個體上執行的動作。 稽核會將安全性相關動作記錄下來,供安全性管理員稍後進行檢閱。
SQL Server Profiler 概念
若要使用 SQL Server Profiler,您必須對於描述工具功能的專門用語有所了解。
使用 SQL Server Profiler 時,了解 SQL 追蹤很有幫助。 如需詳細資訊,請參閱 SQL Trace。
事件
事件是在 SQL Server 資料庫引擎執行個體中產生的動作。 這些活動的例子包括:
- 登入連接、失敗及中斷連接。
- Transact-SQL
SELECT、INSERT、UPDATE和DELETE陳述式。 - 遠端程序呼叫 (RPC) 批次狀態。
- 預存程序的啟動或結束。
- 預存程序內部陳述式的啟動或結束。
- SQL 批次的開頭或結尾。
- 錯誤被寫入至 SQL Server 的錯誤記錄檔。
- 資料庫物件上的鎖定被取得或釋放。
- 開啟的游標。
- 安全性權限檢查。
追蹤會以單一資料列顯示事件產生的所有資料。 詳細描述事件的資料欄位與此列相交。
EventClass
事件類別是一種你可以追蹤的事件類型。 事件類別包含事件可以報告的所有資料。 以下列表展示了事件類別的範例:
- SQL:BatchCompleted
- 稽核登入
- 稽核登出
- 鎖定:已獲得
- 鎖:已解除
事件類別
事件類別定義了 SQL Server Profiler 如何將事件分組。 例如, Locks 事件類別將所有鎖定事件類別分組。 然而,事件類別僅存在於 SQL Server Profiler 中。 這個術語並不反映引擎事件的分組方式。
資料欄
資料行是追蹤中所擷取事件類別的屬性。 因為事件類別會判定可收集的資料類型,所以並不是所有的資料行都適用於所有的事件類別。 例如,在擷取 Lock:Acquired 事件類別的追蹤中,BinaryData 資料行包含鎖定分頁識別碼或資料列的值,但是 Integer Data 資料行則不包含任何值,因為其不適用於所擷取的事件類別。
[範本]
範本可定義追蹤的預設組態。 其特別包含您要使用 SQL Server Profiler 監視的事件類別。 例如,您可以建立範本,其中指定事件、資料行及篩選。 你不能直接執行範本。 相反地,你會把它存成一個帶有 .tdf 副檔名的檔案。 一旦儲存,當您啟動以範本為依據的追蹤時,範本就會控制所要擷取的追蹤資料。
痕跡
追蹤會根據所選取的事件類別、資料行及篩選,來擷取資料。 例如,您可以建立追蹤來監視異常錯誤。 請選取 Exception 事件類別及 Error、 State 和 Severity 資料行,以執行此作業。 只有從這三個欄位收集資料時,追蹤結果才提供有意義的資料。 你可以以這種方式執行追蹤,並收集伺服器中任何 例外 事件的資料。 儲存追蹤資料,或立即用於分析。 你可以稍後重播追蹤,但某些事件,例如 例外 事件,則不會重播。 您也可以將追蹤儲存成範本,以建立類似的追蹤。
SQL Server 提供兩種方式來追蹤 SQL Server 的執行個體:您可以透過 SQL Server Profiler 追蹤,或是使用系統預存程序追蹤。
過濾器
當你建立追蹤或範本時,可以定義條件來過濾事件收集的資料。 為了避免追蹤記錄過大,可以過濾它們,只收集事件資料的子集。 例如,在追蹤中將 Microsoft Windows 使用者名稱限制在特定的使用者,從而減少輸出資料。
如果你沒有設定過濾器,trace 輸出會回傳所選事件類別的所有事件。
SQL Server Profiler 任務
擴充事件與 SQL Server Profiler
擴充事件概觀 和 SQL Server Profiler 是監視和疑難解答 SQL Server 效能的工具。 SQL Server Profiler 已被取代,且只應該與 Analysis Services 搭配使用。 擴充事件是 SQL Server Profiler 的替代方案,並提供其他地方無法提供的進階疑難排解功能。 此處會指出主要差異,以協助從 SQL Server Profiler 移轉至擴充事件。
擴展事件工具
擴充事件概觀 是 SQL Server 內建的輕量型、可高度擴充且彈性的事件處理系統。
擴展事件會話通常會比 SQL 追蹤和 SQL Server Profiler 耗用更少的資源,因此更適合用於生產環境。 擴充事件支援擷取現代化 SQL 版本中可用的事件。
相反地,SQL 追蹤/SQL Server Profiler 中可用的事件僅限於 SQL Server 2008R2 和更早版本中可用的功能。 擴充事件提供出色的篩選功能、較小的預設負載,還有 Profiler 不提供的其他功能,例如內存功能、匯總目標和多重目標支援。
如需擴充事件的詳細資訊,請參閱 擴充事件概觀。
SQL Server Profiler 工具
SQL Server Profiler 是圖形化使用者介面,其使用 SQL 追蹤來擷取 SQL Server 或 Analysis Services 執行個體的活動。
如果設定不當,SQL Server Profiler 可能會耗用大量資源,而影響伺服器效能,特別是在生產伺服器上使用時。 其內建範本可支援快速追蹤。
總而言之,雖然 SQL Server Profiler 是較舊的工具,對許多用戶來說可能很熟悉,但擴充事件是一種新式替代方案,可提供更佳的效能、更詳細的事件資訊,以及疑難解答和監視其他地方無法使用的 SQL Server 實例的功能。 由於延展事件相較於 Profiler 具有更多優勢,建議針對新的追蹤和監視工作使用延展事件。