报告服务器执行日志和 ExecutionLog3 视图

报表服务器执行日志包含有关在一个或多个服务器上在本机模式扩展部署或 SharePoint 场中执行的报表的信息。 您可以使用报表执行日志来查明报表的请求频率、最常用的输出格式以及每个处理阶段所用的处理时间(毫秒)。 该日志包含与执行报表的数据集查询所用的时间长度和处理数据所用的时间长度有关的信息。 如果您是报表服务器管理员,则可以查看日志信息并标识长时间运行的任务,并且向报表作者就其可以改进的报表方面(数据集或处理)提出建议。

配置为 SharePoint 模式的报表服务器也可以利用 SharePoint ULS 日志。 有关详细信息,请参阅为 SharePoint 跟踪日志 (ULS) 启用 Reporting Services 事件

查看日志信息

报表服务器执行日志将报表执行情况的有关数据记录在内部数据库表中。 表中的信息可从 SQL Server 视图获得。

报表执行日志存储于默认名为 ReportServer的报表服务器数据库中。 SQL 视图提供执行日志信息。 “2”和“3”视图已在最近的版本中添加,并且包含新字段或者所包含字段的名称比以前版本更友好。 较旧的视图仍保留在产品中,这样,依赖于它们的自定义应用程序将不会受到影响。 如果您不依赖于较旧的视图,例如 ExecutionLog,则建议您使用最新视图 ExecutionLog3

本主题内容:

针对 SharePoint 模式报表服务器的配置设置

可以从 Reporting Services 服务应用程序的系统设置启用或禁用报表执行日志记录。

默认情况下,日志条目保留 60 天。 超过此值的条目将于每日凌晨 2:00 删除。 对于成熟的安装,在任何给定时间都只保留 60 天的信息。

不能针对行数或所记录的条目类型设置限制。

启用执行日志记录:

  1. 在 SharePoint 管理中心内,在 “应用程序管理” 组中单击 “管理服务应用程序”

  2. 单击要配置的 Reporting Services 服务应用程序的名称。

  3. 单击 “系统设置”

  4. “日志记录” 部分中选择 “启用执行日志记录”

  5. 单击“确定”。

启用详细日志记录:

您需要如前面的步骤中所述启用日志记录,然后完成以下内容:

  1. 从 Reporting Services 服务应用程序的“系统设置”页,找到“用户定义”部分。

  2. ExecutionLogLevel 更改为 verbose。 该字段是文本输入字段,其两个可能的值是 verbosenormal

针对本机模式报表服务器的配置设置

从 SQL Server Management Studio 的“服务器属性”页,您可以启用或禁用报表执行日志记录。 EnableExecutionLogging 是高级属性。

默认情况下,日志条目保留 60 天。 超过此值的条目将于每日凌晨 2:00 删除。 对于成熟的安装,在任何给定时间都只保留 60 天的信息。

不能针对行数或所记录的条目类型设置限制。

启用执行日志记录:

  1. 使用管理权限启动 SQL Server Management Studio。 例如,用鼠标右键单击 Management Studio 图标,然后单击“以管理员身份运行”。

  2. 连接到所需报表服务器。

  3. 右键单击服务器名称并单击“属性”。 如果“属性”选项被禁用,请确认您是在使用管理权限运行 SQL Server Management Studio。

  4. 单击 “日志记录” 页。

  5. 选择“启用报表执行日志记录” 。

启用详细日志记录:

您需要如前面的步骤中所述启用日志记录,然后完成以下内容:

  1. “服务器属性” 对话框中,单击 “高级” 页。

  2. 在“用户定义”部分中,将 ExecutionLogLevel 更改为 verbose 。 该字段是文本输入字段,其两个可能的值是 verbosenormal

日志字段 (ExecutionLog3)

此视图在基于 XML 的 AdditionalInfo 列中添加了其他性能诊断节点。 AdditionalInfo 列包含 1 对多的其他字段的 XML 结构信息。 下面是一个示例 Transact SQL 语句,从视图 ExecutionLog3 检索行。 该示例假定报表服务器数据库名为 ReportServer

Use ReportServer  
select * from ExecutionLog3 order by TimeStart DESC  

下表描述在报表执行日志中捕获的数据

描述
InstanceName 处理请求的报表服务器实例的名称。 如果您的环境具有多个报表服务器,则可以对 InstanceName 分布进行分析,以便监视并确定您的网络负载平衡器是否按预期跨多个报表服务器分布请求。
ItemPath 存储报表或报表项的位置的路径。
UserName 用户标识符。
ExecutionID 与请求关联的内部标识符。 同一用户会话的请求共享相同的执行 ID。
RequestType 可能的值:
交互式
订阅



分析按 RequestType=Subscription 筛选的日志数据和按 TimeStart 排序的数据可揭示大量使用订阅的时间段,这样您可能要将某些报表订阅修改为其他时间。
格式 呈现格式。
参数 用于执行报表的参数值。
ItemAction 可能的值:

呈现

Sort

BookMarkNavigation

DocumentNavigation

GetDocumentMap

Findstring

执行

RenderEdit
TimeStart 指示报表进程的持续时段的开始时间和结束时间。
TimeEnd
TimeDataRetrieval 用于检索数据的毫秒数。
TimeProcessing 用于处理报表的毫秒数。
TimeRendering 用于呈现报表的毫秒数。
报表执行的源。 可能的值:

Live

缓存:指示缓存执行,例如,数据集查询未实时执行。

快照

History

AdHoc :指示动态生成的基于报表模型的钻取报表,或者使用报表服务器进行处理和呈现的客户端上预览的Report Builder报表。

会话:指示已建立的会话中的跟进请求。 例如,初始请求为查看第一页,跟进请求为使用当前会话状态导出到 Excel。

Rdce:指示报表定义自定义扩展插件。 在执行报表时,RDCE 自定义扩展插件可以在将某一报表定义传递到处理引擎前动态自定义该报表定义。
状态 状态(rsSuccess 或错误代码;如果发生多个错误,则只记录第一个)。
ByteCount 所呈现的报表的大小(字节)。
RowCount 查询返回的结果行数。
AdditionalInfo 包含与执行有关的附加信息的 XML 属性包。 对于每一行,内容可以不同。

AdditionalInfo 字段

AdditionalInfo 字段是包含与执行有关的其他信息的 XML 属性包或结构。 对于日志中的每一行,内容可以不同。

下表是标准日志记录和详细日志记录的 AddtionalInfo 字段内容的示例:

AddtionalInfo 的标准日志记录示例

<AdditionalInfo>  
  <ProcessingEngine>2</ProcessingEngine>  
  <ScalabilityTime>  
    <Pagination>0</Pagination>  
    <Processing>0</Processing>  
  </ScalabilityTime>  
  <EstimatedMemoryUsageKB>  
    <Pagination>0</Pagination>  
    <Processing>6</Processing>  
  </EstimatedMemoryUsageKB>  
  <DataExtension>  
    <SQL>1</SQL>  
  </DataExtension>  
  <Connections>  
    <Connection>  
      <ConnectionOpenTime>147</ConnectionOpenTime>  
      <DataSets>  
        <DataSet>  
          <Name>DataSet1</Name>  
          <RowsRead>16</RowsRead>  
          <TotalTimeDataRetrieval>642</TotalTimeDataRetrieval>  
          <ExecuteReaderTime>63</ExecuteReaderTime>  
        </DataSet>  
        <DataSet>  
          <Name>DataSet2</Name>  
          <RowsRead>3</RowsRead>  
          <TotalTimeDataRetrieval>157</TotalTimeDataRetrieval>  
          <ExecuteReaderTime>60</ExecuteReaderTime>  
        </DataSet>  
      </DataSets>  
    </Connection>  
  </Connections>  
</AdditionalInfo>  
  

AdditionalInfo 的详细日志记录示例

<AdditionalInfo>  
  <ProcessingEngine>2</ProcessingEngine>  
  <ScalabilityTime>  
    <Pagination>0</Pagination>  
    <Processing>0</Processing>  
  </ScalabilityTime>  
  <EstimatedMemoryUsageKB>  
    <Pagination>0</Pagination>  
    <Processing>6</Processing>  
  </EstimatedMemoryUsageKB>  
  <DataExtension>  
    <SQL>1</SQL>  
  </DataExtension>  
  <Connections>  
    <Connection>  
      <ConnectionOpenTime>127</ConnectionOpenTime>  
      <DataSource>  
        <Name>DataSource1</Name>  
        <DataExtension>SQL</DataExtension>  
      </DataSource>  
      <DataSets>  
        <DataSet>  
          <Name>DataSet1</Name>  
          <RowsRead>16</RowsRead>  
          <TotalTimeDataRetrieval>655</TotalTimeDataRetrieval>  
          <QueryPrepareAndExecutionTime>94</QueryPrepareAndExecutionTime>  
          <ExecuteReaderTime>33</ExecuteReaderTime>  
          <DataReaderMappingTime>30</DataReaderMappingTime>  
          <DisposeDataReaderTime>1</DisposeDataReaderTime>  
        </DataSet>  
        <DataSet>  
          <Name>DataSet2</Name>  
          <RowsRead>3</RowsRead>  
          <TotalTimeDataRetrieval>16</TotalTimeDataRetrieval>  
          <QueryPrepareAndExecutionTime>2</QueryPrepareAndExecutionTime>  
          <ExecuteReaderTime>1</ExecuteReaderTime>  
          <DataReaderMappingTime>0</DataReaderMappingTime>  
          <DisposeDataReaderTime>0</DisposeDataReaderTime>  
        </DataSet>  
      </DataSets>  
    </Connection>  
  </Connections>  
</AdditionalInfo>  
  

下面介绍了将在 AdditionalInfo 字段中看到的一些属性:

  • ProcessingEngine:1=SQL Server 2005,2=新的按需处理引擎。 如果您的大多数报表仍在显示值 1,则可以研究如何对它们进行重新设计,以便利用更新且效率更高的按需处理引擎。

    <ProcessingEngine>2</ProcessingEngine>

  • ScalabilityTime:在处理引擎中执行缩放相关操作所花费的毫秒数。 值为 0 指示没有额外的时间用于进制运算,值为 0 还指示请求没有处于内存不足的状态。

    <ScalabilityTime>  
        <Processing>0</Processing>  
    </ScalabilityTime>  
    
  • EstimatedMemoryUsageKB:估计特定请求期间每个组件消耗的内存峰值量(以 KB 为单位)。

    <EstimatedMemoryUsageKB>  
        <Processing>38</Processing>  
    </EstimatedMemoryUsageKB>  
    
  • DataExtension:报表中使用的数据扩展插件或数据源的类型。 该数目是特定数据源出现的次数。

    <DataExtension>  
       <DAX>2</DAX>  
    </DataExtension>  
    
  • ExternalImages该值以 miliseconds 为单位。 此数据可用于诊断性能问题。 从外部 Web 服务器检索图像所需的时间可能使总体报表执行速度变慢。 在 2012 SQL Server 中添加。

    <ExternalImages>  
        <Count>3</Count>  
        <ByteCount>9268</ByteCount>  
        <ResourceFetchTime>9</ResourceFetchTime>  
    </ExternalImages>  
    
  • 连接:多级结构。 在 2012 SQL Server 中添加。

    <Connections>  
        <Connection>  
          <ConnectionOpenTime>127</ConnectionOpenTime>  
          <DataSource>  
            <Name>DataSource1</Name>  
            <DataExtension>SQL</DataExtension>  
          </DataSource>  
          <DataSets>  
            <DataSet>  
              <Name>DataSet1</Name>  
              <RowsRead>16</RowsRead>  
              <TotalTimeDataRetrieval>655</TotalTimeDataRetrieval>  
              <QueryPrepareAndExecutionTime>94</QueryPrepareAndExecutionTime>  
              <ExecuteReaderTime>33</ExecuteReaderTime>  
              <DataReaderMappingTime>30</DataReaderMappingTime>  
              <DisposeDataReaderTime>1</DisposeDataReaderTime>  
            </DataSet>  
            <DataSet>  
              <Name>DataSet2</Name>  
              <RowsRead>3</RowsRead>  
              <TotalTimeDataRetrieval>16</TotalTimeDataRetrieval>  
              <QueryPrepareAndExecutionTime>2</QueryPrepareAndExecutionTime>  
              <ExecuteReaderTime>1</ExecuteReaderTime>  
              <DataReaderMappingTime>0</DataReaderMappingTime>  
              <DisposeDataReaderTime>0</DisposeDataReaderTime>  
            </DataSet>  
          </DataSets>  
        </Connection>  
    </Connections>  
    
    

日志字段 (ExecutionLog2)

此视图添加了几个新字段并且重命名了其他几个字段。 下面是一个示例 Transact SQL 语句,从视图 ExecutionLog2 检索行。 该示例假定报表服务器数据库名为 ReportServer

Use ReportServer  
select * from ExecutionLog2 order by TimeStart DESC  

下表描述在报表执行日志中捕获的数据

描述
InstanceName 处理请求的报表服务器实例的名称。
ReportPath 报表的路径结构。 例如,在报表管理器的根文件夹中名为“test”的报表将具有“/test”的 ReportPath。

保存在报表管理器上文件夹“samples”中的名为“test”的报表将具有“/Samples/test/”的 ReportPath
UserName 用户标识符。
ExecutionID
RequestType 请求类型(用户或系统)。
格式 呈现格式。
参数 用于执行报表的参数值。
ReportAction 可能的值:Render、Sort、BookMarkNavigation、DocumentNavigation、GetDocumentMap、Findstring
TimeStart 指示报表进程的持续时段的开始时间和结束时间。
TimeEnd
TimeDataRetrieval 检索数据、处理报表以及呈现报表所用的毫秒数。
TimeProcessing
TimeRendering
报表执行源(1 = 实时,2 = 缓存,3 = 快照,4 = 历史记录)。
状态 状态(rsSuccess 或错误代码;如果发生多个错误,则只记录第一个)。
ByteCount 所呈现的报表的大小(字节)。
RowCount 查询返回的结果行数。
AdditionalInfo 包含与执行有关的附加信息的 XML 属性包。

日志字段 (ExecutionLog)

下面是一个示例 Transact SQL 语句,从视图 ExecutionLog 检索行。 该示例假定报表服务器数据库名为 ReportServer

Use ReportServer  
select * from ExecutionLog order by TimeStart DESC  
  

下表描述在报表执行日志中捕获的数据

描述
InstanceName 处理请求的报表服务器实例的名称。
ReportID 报表标识符。
UserName 用户标识符。
RequestType 可能的值:

True = 订阅请求

False = 交互请求
格式 呈现格式。
参数 用于执行报表的参数值。
TimeStart 指示报表进程的持续时段的开始时间和结束时间。
TimeEnd
TimeDataRetrieval 检索数据、处理报表以及呈现报表所用的毫秒数。
TimeProcessing
TimeRendering
报表执行的源。 可能的值:(1 = 实时,2 = 缓存,3 = 快照,4 = 历史记录,5 = 即席,6 = 会话,7 = RDCE)。
状态 可能的值:rsSuccess、rsProcessingAborted 或错误代码。 如果出现多个错误,则只记录第一个错误。
ByteCount 所呈现的报表的大小(字节)。
RowCount 查询返回的结果行数。

另请参阅

为 SharePoint 跟踪日志 (ULS) 启用 Reporting Services 事件
Reporting Services 日志文件和来源
错误和事件参考 (Reporting Services)