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
SELECT
、INSERT
、UPDATE
和DELETE
陳述式。 - 遠端程序呼叫 (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 事件類別及 Error、 State 和 Severity 資料行,以執行此作業。 必須同時收集這三個資料行的資料,追蹤結果才可以提供有意義的資料。 接著,您可以執行以此方式設定的追蹤,並收集伺服器中之任何 Exception 事件的資料。 可儲存追蹤資料,也可以立即用於分析。 稍後可以再重新執行追蹤,但有些事件 (例如 Exception 事件) 永遠也無法重新執行。 您也可以將追蹤儲存成範本,以建立類似的追蹤。
SQL Server 提供兩種方式來追蹤 SQL Server 的執行個體:您可以透過 SQL Server Profiler 追蹤,或是使用系統預存程序追蹤。
Filter
建立追蹤或範本時,您可以定義條件來篩選由事件所收集的資料。 若不想讓追蹤變得太大,您可加以篩選,只收集某些事件資料的子集。 例如,在追蹤中將 Microsoft Windows 使用者名稱限制在特定的使用者,從而減少輸出資料。
如果沒有設定篩選條件,則追蹤輸出會傳回所有選取事件類別的事件。
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 的多項優點,建議針對新的追蹤和監視工作使用擴充事件。