扩展事件和 SQL Server Profiler

Posted

技术标签:

【中文标题】扩展事件和 SQL Server Profiler【英文标题】:Extended Events and SQL Server Profiler 【发布时间】:2018-11-21 06:16:57 【问题描述】:

我理解了 的概念,我觉得它们都在做同样的工作。我无法理解它们之间的主要区别。谁能解释一下 之间的主要区别?我们什么时候可以在生产环境中使用? SQL Server Profiler 是否更适合生产服务器?

【问题讨论】:

blog.sqlauthority.com/2016/06/22/… 【参考方案1】:

Profiler 在后台使用了一种已过时且已弃用的技术,称为SQL Trace。它不再更新以监控较新的引擎功能,例如内存优化表。因此,扩展事件比 SQL Profiler 可以监控的事件多得多:

它还有更灵活的输出 (targets)。除了像文件和环形缓冲区这样的“经典”目标(有关事件的完整信息以“表格”格式保存)之外,还有事件计数器和直方图目标。它们可以帮助您实现更低的开销,因为它们只计算特定事件发生的次数,而无需保存收集的数据的开销。还有 pair_matching 目标,它可以帮助您将事件相互关联,例如事务的开始和结束。

XE 相对于 Trace 的另一个优势是跟踪的定义不是人类可读的(至少不容易阅读):

虽然 XE 的定义对普通人来说更清楚:

Trace 仍然可以使用,但扩展事件是监控生产服务器的推荐方式。

【讨论】:

以上是关于扩展事件和 SQL Server Profiler的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server Profiler:如何更详细地检查/了解审核注销事件的持续时间?

SQL Server Profiler - 如何过滤跟踪以仅显示来自一个数据库的事件?

SQL Server Profiler查询跟踪的简单使用

SQL Server Profiler 中的 DISCOVER_CSDL_METADATA 真的很慢

怎样在sql server profiler跟踪时只显示自己关心的内容

如何使用SQL Server Profiler跟踪数据库