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

发布于 2024-09-11 23:43:35 字数 129 浏览 2 评论 0原文

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

非常感谢。

Can anyone suggest options we might have in capturing all SQL statements being sent to our SQL Server, outside of running Profiler? I'm aware of a couple ways of doing it, but want to make sure I'm not overlooking something, such as an existing DM view etc.

Thanks very much.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

靑春怀旧 2024-09-18 23:43:35

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

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

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)

Extended Events in SQL Server 2008. These seem fairly underused. Perhaps due to a lack of UI support but are more flexible than SQL Traces (more events and better filtering possibilities) more light weight (due to better filtering and possibility to drop events rather than block)

Example syntax is below. There are lots more events, actions, predicates and output target possibilities than that though.

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

And to review the results

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)
ゃ懵逼小萝莉 2024-09-18 23:43:35

如果 Profiler 的问题不是您不想使用它,而是您无法使用它,也许您可​​以使用 Microsoft SQL Server 2005/2008 Express Edition 的探查器 它是免费且开源的。

If your problem with Profiler isn't that you don't want to use it, but that you can't use it, perhaps you could use Profiler for Microsoft SQL Server 2005/2008 Express Edition It's free and open source.

旧伤还要旧人安 2024-09-18 23:43:35

我认为您的选择是

有一些 DMV 可以收集长时间运行的查询等信息,但我认为没有一个可以收集长时间运行的查询等信息。会给你一切。

I think your options are

There are DMV's that collect information such as long running queries, but I don't think that there is one that will give you everything.

七颜 2024-09-18 23:43:35

您可以使用跟踪以编程方式捕获输出:以编程方式从 SQL Server 2005 接收分析器事件(实时)

You can use Tracing to capture the output programmatically: Programmatically receiving profiler events (in real time) from SQL Server 2005

牵你手 2024-09-18 23:43:35

就其价值而言,《深入了解 Microsoft SQL Server 2008 T-SQL 编程》一书有一个由 Greg Low 撰写的精彩章节,介绍了 SQL Server 2008 中的所有日志记录和审核选项。它讨论了每个选项何时应该使用以及每个的优点和缺点。话虽如此,你所做的可能是最好的。

For what its worth, the book "Inside Microsoft SQL Server 2008 T-SQL Programming" has a GREAT chapter written by Greg Low that looks at all of the logging and auditing options in SQL Server 2008. It discusses when each should be used and the pro and cons of each. Having said that, what you have done is probably best.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文