报表服务器执行日志和 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 为 Advanced 属性。

默认情况下,日志条目保留 60 天。 超过此值的条目将于每日凌晨 2:00 删除。 在成熟的安装中,任何时候最多只能获取 60 天的信息。

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

若要启用执行日志记录,请执行以下作:

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

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

  3. 右键单击服务器名称,然后单击“ 属性”。 如果“属性”选项已禁用,请验证是否使用管理权限运行了 SQL Server Management Studio。

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

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

若要启用详细日志记录,请执行以下作:

需要按照前面的步骤中所述启用日志记录,然后完成以下作:

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

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

日志字段 (执行日志3)

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

Use ReportServer  
select * from ExecutionLog3 order by TimeStart DESC  

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

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



分析根据 RequestType=Subscription 筛选并按 TimeStart 排序的日志数据可能会揭示出订阅使用量大的时间段,你可能希望将某些报表的订阅计划调整到不同的时间。
格式 呈现格式。
参数 用于执行报表的参数值。
项目操作 可能的值:

呈现

排序

BookMarkNavigation

DocumentNavigation

GetDocumentMap

Findstring

执行

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

实时

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

快照

历史

AdHoc:指示要么是基于动态生成报表模型的明细钻取报表,要么是使用报表服务器处理和呈现并在客户端上预览的报表生成器报表。

会话:指示已建立的会话中的后续请求。 例如,初始请求是查看第 1 页,后续请求是在当前会话状态下导出为 Excel 文件。

Rdce:指示报表定义自定义扩展。 RDCE 自定义扩展可以在报表执行时将其传递到处理引擎之前动态自定义报表定义。
状态 状态(rsSuccess 或错误代码;如果发生多个错误,则只记录第一个)。
ByteCount 所呈现的报表的大小(字节)。
行数 查询返回的结果行数。
附加信息 包含与执行有关的附加信息的 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 服务器检索图像所需的时间可能会降低整个报表执行速度。 在 SQL Server 2012 中添加。

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

    <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  

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

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

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

日志字段 (ExecutionLog)

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

Use ReportServer  
select * from ExecutionLog order by TimeStart DESC  
  

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

DESCRIPTION
实例名称 处理请求的报表服务器实例的名称。
ReportID 报表标识符。
UserName 用户标识符。
请求类型 可能的值:

True = 订阅请求

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

另请参阅

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