2011-11-14 83 views
2

我正在創建一個應用程序,用於跟蹤SQL Server中與服務器上執行的每個查詢有關的特定性能相關統計信息。我可以通過SQL Trace或更具體地說,通過使用StatementCompletedBatchCompleted事件類別獲得大部分信息。根據T-SQL語句跟蹤等待統計信息

使用SQL跟蹤與上述事件給我的一切除了等待統計。我知道我可以分別從兩個動態管理視圖和功能sys.dm_os_wait_statssys.dm_os_waiting_tasks獲得等待統計信息。

我需要找到一種方法來將這兩個信息結合在一起,以便我可以確定每個查詢的等待統計數據。例如,我需要能夠回答如下問題:查詢X在可以開始執行之前必須等待IO或CPU資源多久?

我無法準確回答這個問題,因爲SQL Trace沒有給我這些信息。 有沒有辦法從SQL Server獲取服務器上正在執行的每條語句的等待統計信息?

回答

3

如果您使用的是SQL Server 2008,則可以使用擴展事件來捕獲在感興趣的spid上過濾的sqlos.wait_info事件的詳細信息。

查看SQLSkills: Capturing wait stats for a single operation的示例代碼。

+0

這正是我所期待的。儘管使用跟蹤每個查詢有點貴。感謝您及時的回覆! –