任何人都可以建议我们捕获所有正在运行的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