共用方式為


SQL Server Profiler

適用於:SQL ServerAzure SQL 受控執行個體

SQL Server Profiler 是一個介面,可用來建立及管理追蹤,以及分析及重新執行追蹤結果。 事件會儲存於追蹤檔案中,稍後在診斷問題時,可用來進行分析或是重新執行特定的一連串步驟。

重要

  • SQL 追蹤和 SQL Server Profiler 已淘汰。 包含 Microsoft SQL Server 追蹤和重新執行物件的 Microsoft.SqlServer.Management.Trace 命名空間也會被淘汰。 不過,Analysis Services 工作負載依然受支援。
  • SQL Server 的未來版本將移除此功能。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。
  • 請改用擴充事件。 如需延伸事件的詳細資訊,請參閱快速入門:SQL Server 中的延伸事件SSMS XEvent 分析工具

注意事項

當嘗試從 SQL Server Profiler 連線至 Azure SQL 資料庫時,會錯誤地擲回具誤導性的錯誤訊息,如下所示:

  • 若要對 SQL Server 執行追蹤,則必須為系統管理員固定伺服器角色的成員,或具有「改變追蹤」權限。

此訊息原本應說明 SQL Server Profiler 不支援 Azure SQL Database。

Profiler 位於何處?

您可以在 SQL Server Management Studio 中,或透過使用 SQL Server Profiler 延伸模組的 Azure Data Studio 啟動 Profiler。

擷取並重播追蹤資料

在 SQL Server 中,下表顯示我們建議用來擷取和重播追蹤資料的功能。

功能\目標工作負載 關聯式引擎 Analysis Services (英文)
追蹤捕捉 SQL Server Management Studio 中的擴充事件 圖形化使用者介面 SQL Server Profiler
追蹤回放 Distributed Replay SQL Server Profiler

使用 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 SELECTINSERTUPDATEDELETE 陳述式。
  • 遠端程序呼叫 (RPC) 批次狀態。
  • 預存程序的啟動或結束。
  • 預存程序內部陳述式的啟動或結束。
  • SQL 批次的開頭或結尾。
  • 錯誤被寫入至 SQL Server 的錯誤記錄檔。
  • 資料庫物件上的鎖定被取得或釋放。
  • 開啟的游標。
  • 安全性權限檢查。

追蹤會以單一資料列顯示事件產生的所有資料。 另有資料行與此資料列交叉,用以詳細描述該事件。

EventClass

事件類別是一種可追蹤的事件類型。 事件類別包含事件可以報告的所有資料。 事件類別的範例如下:

  • SQL:BatchCompleted
  • 稽核登入
  • 稽核登出
  • 鎖定:已獲得
  • 鎖:已解除

事件類別

事件類別目錄會定義事件在 SQL Server Profiler 中的分組方式。 例如,所有鎖定事件類別都會在 Locks 事件類別目錄中予以分組。 不過,事件類別目錄僅存在於 SQL Server Profiler 內。 這個字詞無法反映 Engine 事件的分組方式。

DataColumn

資料行是追蹤中所擷取事件類別的屬性。 因為事件類別會判定可收集的資料類型,所以並不是所有的資料行都適用於所有的事件類別。 例如,在擷取 Lock:Acquired 事件類別的追蹤中,BinaryData 資料行包含鎖定分頁識別碼或資料列的值,但是 Integer Data 資料行則不包含任何值,因為其不適用於所擷取的事件類別。

[範本]

範本可定義追蹤的預設組態。 其特別包含您要使用 SQL Server Profiler 監視的事件類別。 例如,您可以建立範本,其中指定事件、資料行及篩選。 範本不能執行,但會儲存為 .tdf 副檔名的檔案。 一旦儲存,當您啟動以範本為依據的追蹤時,範本就會控制所要擷取的追蹤資料。

痕跡

追蹤會根據所選取的事件類別、資料行及篩選,來擷取資料。 例如,您可以建立追蹤來監視異常錯誤。 請選取 Exception 事件類別及 ErrorStateSeverity 資料行,以執行此作業。 必須同時收集這三個資料行的資料,追蹤結果才可以提供有意義的資料。 接著,您可以執行以此方式設定的追蹤,並收集伺服器中之任何 Exception 事件的資料。 可儲存追蹤資料,也可以立即用於分析。 稍後可以再重新執行追蹤,但有些事件 (例如 Exception 事件) 永遠也無法重新執行。 您也可以將追蹤儲存成範本,以建立類似的追蹤。

SQL Server 提供兩種方式來追蹤 SQL Server 的執行個體:您可以透過 SQL Server Profiler 追蹤,或是使用系統預存程序追蹤。

過濾器

建立追蹤或範本時,您可以定義條件來篩選由事件所收集的資料。 若不想讓追蹤變得太大,您可加以篩選,只收集某些事件資料的子集。 例如,在追蹤中將 Microsoft Windows 使用者名稱限制在特定的使用者,從而減少輸出資料。

如果沒有設定篩選條件,則追蹤輸出會傳回所有選取事件類別的事件。

SQL Server Profiler 任務

工作描述 條款
列出 SQL Server 提供的預先定義範本,用於監視特定事件,以及使用重播追蹤所需的權限。 SQL Server Profiler 範本和權限
描述如何執行 SQL Server Profiler。 執行 SQL Server Profiler 所需的權限
描述如何建立追蹤。 建立追蹤 (SQL Server Profiler)
描述如何指定追蹤檔案的事件和資料行。 指定追蹤檔案中的事件和資料欄 (SQL Server Profiler)
描述如何將追蹤結果儲存至檔案。 將追蹤結果儲存至檔案 (SQL Server Profiler)
描述如何將追蹤結果儲存至資料表。 將追蹤結果儲存到資料表 (SQL Server Profiler)
描述如何篩選追蹤中的事件。 篩選追蹤中的事件 (SQL Server Profiler)
描述如何檢視篩選資訊。 檢視篩選資訊 (SQL Server Profiler)
描述如何修改篩選。 修改篩選 (SQL Server Profiler)
描述如何設定追蹤檔案的檔案大小上限 (SQL Server Profiler)。 設定追蹤檔案的檔案大小上限 (SQL 以及其他)
描述如何設定追蹤資料表的資料表大小上限。 設定追蹤資料表的資料表大小上限 (SQL Server Profiler)
描述如何啟動追蹤。 啟動追蹤
描述如何在連接至伺服器後自動啟動追蹤。 在連接伺服器之後自動啟動追蹤 (SQL Server Profiler)
描述如何根據事件開始時間篩選事件。 依據事件開始時間篩選事件 (SQL Server Profiler)
描述如何根據事件結束時間篩選事件。 根據事件結束時間篩選事件 (SQL Server Profiler)
描述如何在追蹤中篩選會話標識碼。 篩選追蹤中的伺服器處理序 ID (SPID) (SQL 以及其他)
描述如何暫停追蹤。 暫停追蹤 (SQL Server Profiler)
描述如何停止追蹤程式。 停止追蹤 (SQL Server Profiler)
描述如何在追蹤暫停或停止之後恢復運行追蹤。 在暫停或停止後重新執行追蹤 (SQL Server Profiler)
描述如何清除追蹤視窗。 清除追蹤視窗 (SQL Server Profiler)
描述如何關閉追蹤視窗。 關閉追蹤視窗 (SQL Server Profiler)
描述如何設定追蹤定義預設值。 設定追蹤定義預設值 (SQL Server Profiler)
描述如何設定追蹤顯示預設值。 設定追蹤顯示預設值 (SQL Server Profiler)
描述如何開啟追蹤檔案。 開啟追蹤檔案 (SQL Server Profiler)
描述如何開啟追蹤資料表。 開啟追蹤資料表 (SQL Server Profiler)
描述如何重新執行追蹤資料表。 重新執行追蹤資料表 (SQL Server Profiler)
描述如何重新執行追蹤檔案。 重新執行追蹤檔案 (SQL Server Profiler)
描述如何一次重新執行單一事件。 SQL Server Profiler:逐個事件重播
描述如何回放至中斷點。 重播到中斷點 (SQL Server Profiler)
描述如何重播至資料指標。 重播至游標 (SQL Server Profiler)
描述如何重新執行 Transact-SQL 指令碼。 重新執行 Transact-SQL 指令碼 (SQL Server Profiler)
描述如何建立追蹤範本。 建立追蹤範本 (SQL Server Profiler)
描述如何修改追蹤範本。 修改追蹤範本 (SQL Server Profiler)
描述如何設定全域追蹤選項。 設定全域追蹤選項 (SQL Server Profiler)
描述如何在追蹤時找到值或資料行。 在追蹤時尋找數值或資料欄 (SQL Server Profiler)
描述如何從正在執行的追蹤中衍生範本。 從執行中的追蹤擷取範本 (SQL Server Profiler)
描述如何從追蹤檔案或追蹤資料表衍生範本。 從追蹤檔案或追蹤資料表衍生範本 (SQL Server Profiler)
描述如何建立用於執行追蹤的 Transact-SQL 指令碼。 建立 Transact-SQL 指令碼以執行追蹤 (SQL Server Profiler)
描述如何匯出追蹤範本。 匯出追蹤範本 (SQL Server Profiler)
描述如何匯入追蹤範本。 匯入追蹤範本 (SQL Server Profiler)
描述如何從追踪檔案中擷取腳本。 從追蹤中擷取指令碼 (SQL Server Profiler)
描述如何使追蹤與 Windows 效能記錄資料相互關聯。 使追蹤與 Windows 效能記錄資料產生相互關聯 (SQL Server Profiler)
描述如何整理追蹤中所顯示的欄位。 整理在追蹤檔中顯示的資料行 (SQL Server Profiler)
描述如何啟動 SQL Server Profiler。 啟動 SQL Server Profiler
描述如何儲存追蹤檔案及追蹤範本。 儲存追蹤及追蹤模板
描述如何修改追蹤範本。 修改追蹤範本
描述如何使追蹤與 Windows 效能記錄資料相互關聯。 使追蹤與 Windows 效能記錄資料相互關聯
描述如何使用 SQL Server Profiler 檢視及分析追蹤。 使用 SQL Server Profiler 檢視和分析追蹤
描述如何使用 SQL Server Profiler 分析死結。 使用 SQL Server Profiler 分析死結
描述如何在 SQL Server Profiler 中分析具有 SHOWPLAN 結果的查詢。 在 SQL Server Profiler 中使用 SHOWPLAN 結果分析查詢
描述如何使用 SQL Server Profiler 篩選追蹤。 使用 SQL Server Profiler 篩選追蹤
描述如何使用 SQL Server Profiler 的重新執行功能。 重播追蹤
列出 SQL Server Profiler 的與上下文相關的說明文章。 SQL Server Profiler F1 說明
列出 SQL Server Profiler 用來監視效能及活動的系統預存程序。 SQL Server Profiler 預存程序 (Transact-SQL)

擴充事件與 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 具有更多優勢,建議針對新的追蹤和監視工作使用延展事件。