Ran*_*der 9 sql-server profiler sql-server-2008 extended-events
任何人都可以建议我们在运行Profiler之外捕获发送到SQL Server的所有SQL语句的选项吗?我知道有几种方法可以做到这一点,但我想确保我不会忽略某些东西,例如现有的DM视图等.
非常感谢.
Mar*_*ith 13
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
Run Code Online (Sandbox Code Playgroud)
并审查结果
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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14493 次 |
| 最近记录: |