天天看點

五、性能監視(3)SQL跟蹤

一、概念

1. SQL跟蹤(SQL Trace)

  SQL Server 的底層有一個事件子系統,稱為SQL Trace。DBA可能通過這個事件子系統捕捉與SQL Server執行個體中可能發生的200多個事件有關的資訊。

  SQL Server Profiler是一個圖形化工具,提供了SQL Trace子系統最常用的接口。SQL Server 提供 Transact-SQL 系統存儲過程來建立對 SQL Server 資料庫引擎執行個體的跟蹤。 可以不使用 SQL Server Profiler,而使用這些系統存儲過程從您自己的應用程式中手動建立跟蹤。 這樣,您就可以針對企業的特定需求編寫自定義應用程式。 

  在 SQL 跟蹤中,如果事件是在跟蹤定義中列出的事件類的執行個體,則收集這些事件。 可以将這些事件從跟蹤中篩選出來或為其目标進行排隊。 目标可以是檔案或 SQL Server 管理對象 (SMO),它可以使用管理 SQL Server 的應用程式中的跟蹤資訊。 

  

2. SQL 跟蹤結構

  事件源可以是生成跟蹤事件(例如 Transact-SQL 批處理)或 SQL Server 事件(例如死鎖)的任何源。 有關事件的詳細資訊,請參閱 SQL Server 事件類參考。 事件發生後,如果該事件類已經包含在跟蹤定義中,則跟蹤将收集該事件資訊。 如果已經在跟蹤定義中為該事件類定義篩選器,則将應用這些篩選器并将跟蹤事件資訊傳遞到隊列。 從隊列中,跟蹤資訊或者被寫入檔案,或者由應用程式(例如 SQL Server Profiler)中的 SMO 使用。 

  以下關系圖顯示了在跟蹤期間 SQL 跟蹤如何收集事件。 

五、性能監視(3)SQL跟蹤

二、使用SQL跟蹤的方法

  通過系統存儲過程進行跟蹤的過程如下: http://technet.microsoft.com/zh-cn/library/hh245121.aspx

(1)使用 sp_trace_create 建立跟蹤。為存儲過程 sp_trace_create 的 @tracefile 參數指定路徑和檔案名後,SQL Server 将跟蹤結果儲存到檔案中。

(2)使用 sp_trace_setevent 添加事件。

(3)使用 sp_trace_setfilter 設定篩選器(可選)

(4)使用 sp_trace_setstatus 啟動跟蹤。

(5)使用 sp_trace_setstatus 停止跟蹤。

(6)使用 sp_trace_setstatus 關閉跟蹤。

PTO