使用 SQL Server 扩展事件监视 Analysis Services

适用于: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

扩展事件 (xEvents) 是一种轻量级跟踪和性能监视系统,它使用极少的系统资源,因此是诊断生产和测试服务器上问题的理想工具。 它还具有高度可缩放性、可配置性,在 SQL Server 2016 中,通过新的内置工具支持更易于使用。 在 SQL Server Management Studio (SSMS) 中,在连接到 Analysis Services 实例时,可以配置、运行和监视实时跟踪,类似于使用 SQL Server Profiler。 添加了更好的工具应使 xEvents 成为 SQL Server Profiler 更合理的替代,并且在如何诊断数据库引擎问题和 Analysis Services 工作负荷问题中创建更多对称。

除了SQL Server Management Studio,还可以通过 XMLA 脚本以旧方式配置SQL Server Analysis Services扩展事件会话,如以前版本支持的那样。

所有 Analysis Services 事件都可以按照 扩展事件中的定义进行捕获或者针对特定的使用者。

使用 SSMS 配置 Analysis Services

对于表格实例和多维实例,SSMS 都显示一个管理文件夹,其中包含用户启动的 xEvent 会话。 可以一次运行多个会话。 但是,在当前实现中,SQL Server Analysis Services扩展事件用户界面不支持更新或重播现有会话。

使用 SSMS 连接到Power BI Premium工作区时,不支持管理文件夹。

ssas_extended_events_ssms_start

选择事件

如果已经知道想要捕获的事件,搜索它们是将它们添加到跟踪的最简单方法。 否则,通常将使用以下事件用于监视操作:

  • CommandBeginCommandEnd

  • QueryBeginQueryEndQuerySubcubeVerbose (显示发送至服务器的整个 MDX 或 DAX 查询),以及 ResourceUsage (关于查询所用资源和所返回行数的统计信息)。

  • ProgressReportBeginProgressReportEnd (用于处理操作)。

  • AuditLoginAuditLogout (捕获客户端应用程序连接到 Analysis Services 所依据的用户标识)。

选择数据存储

会话可实时流式传输到 Management Studio 中的窗口,或持久保存到文件供以后使用 Power Query 或 Excel 进行分析。

  • event_file 将会话数据存储在 .xel 文件中。

  • event_stream 在 Management Studio 中启用“查看实时数据”选项。

  • 只要服务器在运行,ring_buffer 就会将会话数据存储在内存中。 服务器重新启动后,将给出会话数据

添加事件字段

请务必配置会话以包含事件字段,以便可以轻松看到感兴趣的信息。

“配置”是对话框远端的选项。

对话框的屏幕截图,其中突出显示了框右侧的“配置”选项。

在配置中的“事件字段”选项卡上,选择“TextData”,这样此字段出现在事件旁边,显示返回的值,包括正在服务器上执行的查询。

为所需事件和数据存储配置会话后,可以单击脚本按钮将配置发送到支持的目标之一,包括文件、SQL Server Management Studio中的新查询和剪贴板。

刷新会话

一旦创建会话,确保刷新 Management Studio 中的会话文件夹,查看刚创建的会话。 如果配置了 event_stream,可以右键单击会话名称,然后选择“查看实时数据”以实时监视服务器活动。

要启动的 XMLA 脚本

通过使用如下的 XMLA 创建对象脚本命令启用扩展事件跟踪:

<Execute ...>  
   <Command>  
      <Batch ...>  
         <Create ...>  
            <ObjectDefinition>  
               <Trace>  
                  <ID>trace_id</ID>  
                  <Name>trace_name</Name>  
                  <ddl300_300:XEvent>  
                     <event_session ...>  
                        <event package="AS" name="AS_event">  
                           <action package="PACKAGE0" .../>  
                        </event>  
                        <target package="PACKAGE0" name="asynchronous_file_target">  
                           <parameter name="filename" value="data_filename.xel"/>  
                           <parameter name="metadatafile" value="metadata_filename.xem"/>  
                        </target>  
                     </event_session>  
                  </ddl300_300:XEvent>  
               </Trace>  
            </ObjectDefinition>  
         </Create>  
      </Batch>  
   </Command>  
   <Properties></Properties>  
</Execute>  

其中,以下元素将由用户根据跟踪需要进行定义:

trace_id
定义用于此跟踪的唯一标识符。

trace_name
提供给此跟踪的名称;通常是此跟踪的用户可读定义。 通常使用 trace_id 值作为该名称。

AS_event
要公开的 Analysis Services 事件。 有关事件名称的详细信息,请参阅 Analysis Services 跟踪事件

data_filename
包含事件数据的文件的名称。 该名称以时间戳作为后缀,以免在反复发送跟踪时数据被覆盖。

元数据文件名
包含事件元数据的文件的名称。 该名称以时间戳作为后缀,以免在反复发送跟踪时数据被覆盖。

要停止的 XMLA 脚本

若要停止扩展事件跟踪对象,您需要使用如下所示的 XMLA 删除对象脚本命令删除该对象:

<Execute xmlns="urn:schemas-microsoft-com:xml-analysis">  
   <Command>  
      <Batch ...>  
         <Delete ...>  
            <Object>  
               <TraceID>trace_id</TraceID>  
            </Object>  
         </Delete>  
      </Batch>  
   </Command>  
   <Properties></Properties>  
</Execute>  
  

其中,以下元素将由用户根据跟踪需要进行定义:

trace_id
为要删除的跟踪定义唯一标识符。

另请参阅

SQL Server扩展事件