2010-07-28 101 views

回答

13

Extended Events在SQL Server 2008中這些看起來相當充分利用。也許是由於缺乏UI支持,但比SQL Traces更靈活(更多事件和更好的過濾可能性)更輕量(由於更好的過濾和放棄事件而非塊的可能性)

語法示例如下。除此之外,還有更多的事件,動作,謂詞和輸出目標可能性。

IF EXISTS(SELECT * FROM sys.server_event_sessions WHERE name='test_trace') 
DROP EVENT SESSION [test_trace] ON SERVER; 
CREATE EVENT SESSION [test_trace] 
ON SERVER 
ADD EVENT sqlserver.sql_statement_completed(
    ACTION (package0.callstack, sqlserver.session_id, sqlserver.sql_text) 
    ) 
, 
ADD EVENT sqlserver.sp_statement_completed(
    ACTION (package0.callstack, sqlserver.session_id, sqlserver.sql_text) 
    ) 
ADD TARGET package0.asynchronous_file_target 
(set filename = 'c:\temp\test_trace.xel' , metadatafile = 'c:\temp\test_trace.xem') 
ALTER EVENT SESSION [test_trace] ON SERVER STATE = START 

,並審查結果

SELECT CONVERT (XML, event_data) AS data 
     FROM sys.fn_xe_file_target_read_file ('C:\Temp\test_trace*.xel', 
     'C:\Temp\test_trace*.xem', NULL, NULL) 
+0

對象資源管理器中的哪些地方(如果有的話)列出了這些事件? – RonJohn 2017-10-25 12:16:12

1

我覺得你的選擇是

有DMV的收集信息,如長時間運行查詢,但我不認爲有一個會給你所有的東西。

1

如果你的Profiler問題不是你不想使用它,但你不能使用它,也許你可以使用Profiler for Microsoft SQL Server 2005/2008 Express Edition它是免費的和開源的。

+0

現在還不是免費或開源的,但它可能有用。 – 2014-04-11 14:29:43

+0

太糟糕了。我甚至沒有看到您可以獲得試用版,但看起來初始版本的價格相當合理。但這並沒有解決開源問題。 – DOK 2014-04-11 18:20:48

0

爲了什麼它的價值,這本書「內部的Microsoft SQL Server 2008的T-SQL編程」具有由Greg低寫了一個偉大的篇章,着眼於所有的SQL Server 2008中的日誌記錄和審計選項。它討論了每個應該使用的時間以及每個應用的利弊。話雖如此,你所做的可能是最好的。