2010-07-28 150 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中的日志记录和审计选项。它讨论了每个应该使用的时间以及每个应用的利弊。话虽如此,你所做的可能是最好的。