处理多维数据集的用户名

时间:2018-08-30 12:35:46

标签: ssas cube

其中有一个代码段,我必须获取已处理多维数据集或对多维数据集结构进行任何更改的用户的用户名。

我已经搜索了SSAS DMV,但是没有找到我需要的东西。我只找到了上次处理时间,但没有找到用户名。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您可以使用扩展事件进行跟踪。添加要处理的ProgressReportBegin和ProgressReportEnd事件。这些事件包括NTUserName和StartTime字段,可用于查找谁处理多维数据集以及何时处理。处理多维数据集以捕获扩展事件时,将需要运行扩展事件。以下是XMLA命令示例,当连接到SSMS中的SSAS数据库时可以运行该XMLA命令,以创建扩展事件,该事件跟踪多维数据集处理并将结果输出到文件。当然,这些选项中的许多只是默认值,您可能需要根据需要进行调整。

https://docs.microsoft.com/en-us/sql/analysis-services/instances/monitor-analysis-services-with-sql-server-extended-events?view=sql-server-2017

<Create xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
  <ObjectDefinition>
    <Trace>
      <ID>XE_Cube_Process</ID>
      <Name>XE_Cube_Process</Name>
      <XEvent xmlns="http://schemas.microsoft.com/analysisservices/2011/engine/300/300">
        <event_session name="XE_Cube_Process" dispatchLatency="0" maxEventSize="0" maxMemory="4" memoryPartition="none" eventRetentionMode="AllowSingleEventLoss" trackCausality="true" xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
          <event package="AS" name="ProgressReportEnd" />
          <event package="AS" name="ProgressReportBegin" />
          <target package="package0" name="event_file">
            <parameter name="filename" value="C:\Test\XE_Cube_Process.xel" />
            <parameter name="max_file_size" value="4096" />
            <parameter name="max_rollover_files" value="10" />
            <parameter name="increment" value="1024" />
          </target>
        </event_session>
      </XEvent>
    </Trace>
  </ObjectDefinition>
</Create>