【问题标题】:How to read SSAS Extended Event session data from Ring Buffer如何从环形缓冲区读取 SSAS 扩展事件会话数据
【发布时间】:2019-02-07 17:14:44
【问题描述】:

我正在我的 SSAS 实例上运行扩展事件会话,它将事件记录到环形缓冲区。

我想从环形缓冲区中读取这些事件,但我找不到它们的存储位置。

到目前为止,我无法看到 sys.dm_os_ring_buffers 中的事件,据我所知应该是它们出现的地方。此处似乎只记录了与 SQL Server(数据库引擎)相关的事件。

SSAS 是否有单独的区域保存记录到环形缓冲区的事件?

【问题讨论】:

  • 在进行了更多研究之后,如果我从任一数据源读取由 XEvent 会话创建的 XML 数据似乎并不重要。因此,确保它实际上是从环形缓冲区读取而不是从文件系统读取似乎不会产生足够大的影响,从而需要进一步研究这个解决方案。瓶颈似乎是基于列将数据从 XML 转换为 SELECTable 格式。

标签: sql-server logging ssas


【解决方案1】:

结果存储在 SSAS(不是 SQL Server)$SYSTEM.DISCOVER_XEVENT_SESSION_TARGETS DMV 的 TARGET_DATA 列中。数据以 XML 格式存储。要查询此 DMV,请通过 SSMS 连接到 SSAS 并打开一个新的查询编辑器窗口 (CTRL + N),例如用于 MDX 或 DAX 查询。然后就可以按如下方式查询DMV了。

SELECT 
    TARGET_DATA 
FROM $SYSTEM.DISCOVER_XEVENT_SESSION_TARGETS 
WHERE SESSION_NAME = 'YourExtendedEventSession'

【讨论】:

  • 这将为我以 Ring Buffer 作为数据目标开始的 XEvents 会话返回一个空列,并返回一个 XML,指定我使用 File 作为数据目标创建的另一个会话的文件路径。然而,我正在寻找实际事件,就像它们被写入文件目标一样。
  • 您使用的是什么类型的立方体(表格/多维)?使用 1100 兼容级别的表格模型为我填充了该列。当将其用作目标时,您正在监视的相同事件将写入文件,对吗?
  • 这是一个 MD 立方体。我设置了两个会话,一个写入文件系统,一个写入环形缓冲区。我使用的是 SQL Server 2016,我相信它是 130 版?
  • 我不确定多维,但对于 SSAS 2016 表格模型,兼容性级别可能会有所不同。两个会话都有相同的事件,并且事件是使用文件目标写入会话的,对吧?
猜你喜欢
  • 2013-07-22
  • 1970-01-01
  • 1970-01-01
  • 2012-02-16
  • 1970-01-01
  • 1970-01-01
  • 2015-07-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多