任何人都可以建議我們捕獲所有正在運行的Profiler之外發送到SQL Server的SQL語句的選項嗎?我知道有一些方法可以做到這一點,但是要確保我不會忽視某些東西,比如現有的DM視圖等。SQL Server 2008 - 捕獲服務器上的所有SQL語句
非常感謝。
任何人都可以建議我們捕獲所有正在運行的Profiler之外發送到SQL Server的SQL語句的選項嗎?我知道有一些方法可以做到這一點,但是要確保我不會忽視某些東西,比如現有的DM視圖等。SQL Server 2008 - 捕獲服務器上的所有SQL語句
非常感謝。
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)
如果你的Profiler問題不是你不想使用它,但你不能使用它,也許你可以使用Profiler for Microsoft SQL Server 2005/2008 Express Edition它是免費的和開源的。
現在還不是免費或開源的,但它可能有用。 – 2014-04-11 14:29:43
太糟糕了。我甚至沒有看到您可以獲得試用版,但看起來初始版本的價格相當合理。但這並沒有解決開源問題。 – DOK 2014-04-11 18:20:48
爲了什麼它的價值,這本書「內部的Microsoft SQL Server 2008的T-SQL編程」具有由Greg低寫了一個偉大的篇章,着眼於所有的SQL Server 2008中的日誌記錄和審計選項。它討論了每個應該使用的時間以及每個應用的利弊。話雖如此,你所做的可能是最好的。
對象資源管理器中的哪些地方(如果有的話)列出了這些事件? – RonJohn 2017-10-25 12:16:12