gpt4 book ai didi

sql-server - SQL Server 2008 - 捕获所有到达服务器的 SQL 语句

转载 作者:行者123 更新时间:2023-12-02 10:56:55 24 4
gpt4 key购买 nike

除了运行 Profiler 之外,任何人都可以建议我们在捕获发送到 SQL Server 的所有 SQL 语句时可能使用的选项吗?我知道有几种方法可以做到这一点,但想确保我没有忽略某些东西,例如现有的 DM View 等。

非常感谢。

最佳答案

Extended Events在 SQL Server 2008 中。这些似乎没有得到充分利用。也许是由于缺乏 UI 支持,但比 SQL 跟踪更灵活(更多事件和更好的过滤可能性)更轻量(由于更好的过滤和删除事件而不是阻止的可能性)

示例语法如下。不过,还有更多的事件、 Action 、谓词和输出目标可能性。

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)

关于sql-server - SQL Server 2008 - 捕获所有到达服务器的 SQL 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3353387/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com