1

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

4

1 回答 1

0

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

在此处输入图像描述

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

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

在此处输入图像描述

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

在此处输入图像描述

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

于 2018-11-21T16:00:01.610 回答