共用方式為


SQL Server Profiler

適用於:SQL Server Azure 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
  • 稽核登入
  • 稽核登出
  • Lock:Acquired
  • Lock:Released

EventCategory

事件類別目錄會定義事件在 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 追蹤,或是使用系統預存程序追蹤。

Filter

建立追蹤或範本時,您可以定義條件來篩選由事件所收集的資料。 若不想讓追蹤變得太大,您可加以篩選,只收集某些事件資料的子集。 例如,在追蹤中將 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)
描述如何篩選追蹤中的伺服器處理序識別碼 (SPID)。 篩選追蹤中的伺服器處理序 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 的多項優點,建議針對新的追蹤和監視工作使用擴充事件。