ExecutionLog do servidor de relatório e exibição do ExecutionLog3

O log de execução do servidor de relatório do Reporting Services contém informações sobre os relatórios executados no servidor ou em vários servidores. Esses servidores estão em uma implantação escalável no modo nativo ou em um farm do SharePoint. É possível usar o log de execução de relatório para descobrir:

  • Com que frequência um relatório é solicitado
  • Quais formatos de saída são mais usados,
  • Quantos milissegundos de tempo de processamento são gastos em cada fase de processamento

O log contém informações sobre o período de tempo gasto na execução da consulta do conjunto de dados de um relatório e a hora gasta no processamento dos dados. Se você for um administrador do servidor de relatório, poderá revisar as informações de log e identificar tarefas de execução prolongada. Também é possível fazer sugestões aos autores do relatório sobre as áreas do conjunto de dados ou do relatório de processamento que podem ser melhoradas.

Os servidores de relatório configurados no modo do SharePoint também podem utilizar os logs ULS do SharePoint. Para mais informações, confira Ativar eventos do Reporting Services para o ULS (log de rastreamento do SharePoint)

Exibir informações do log

A execução do servidor de relatório registra dados sobre execução de relatório em uma tabela de banco de dados interna. As informações da tabela estão disponíveis nas exibições do SQL Server.

O log de execução de relatório é armazenado no banco de dados do servidor de relatório que, por padrão, é denominado ReportServer. As exibições SQL fornecem as informações do log de execução. As exibições "2" e "3" foram adicionadas às versões mais recentes e contêm novos campos ou contêm campos com nomes mais amigáveis que as versões anteriores. As exibições mais antigas permanecem no produto para que os aplicativos que dependem delas não sejam impactados. Se você não tem uma dependência em uma exibição mais antiga, por exemplo, ExecutionLog, use a exibição mais recente, ExecutionLog3.

Neste artigo:

Definições de configuração de um servidor de relatório no modo SharePoint

Você pode ativar ou desativar a execução de relatório nas configurações de sistema de um aplicativo de serviço Reporting Services.

Por padrão, as entradas de log são mantidas por 60 dias. Entradas que excedem essa data são removidas às 2h, operação realizada diariamente. Em uma instalação madura, somente 60 dias de informações estão disponíveis em um dado momento.

Não é possível definir limites para o número de linhas ou o tipo de entradas registradas.

Habilitar log de execução

  1. Na Administração Central do SharePoint, selecione Gerenciar aplicativos de serviço no grupo Gerenciamento de Aplicativo.

  2. Escolhao nome do aplicativo de serviço do Reporting Services a ser configurado.

  3. Selecione Configurações do Sistema.

  4. Selecione Habilitar Log de Execução na seção Log .

  5. Selecione OK.

Habilitar registro em log detalhado

É necessário habilitar o log conforme descrito nas etapas anteriores e concluir as etapas a seguir:

  1. Na página Configurações do Sistema do aplicativo de serviços Reporting Services, localize a seção Definido pelo usuário.

  2. Altere o ExecutionLogLevel para detalhado. Esse é um campo de entrada de texto, e os dois valores possíveis são detalhado e normal.

Definições de configuração de um servidor de relatório no modo nativo

Você pode ativar ou desativar o log de execução de relatório na página de Propriedades do Servidor do SQL Server Management Studio. O EnableExecutionLogging é uma propriedade avançada.

Por padrão, as entradas de log são mantidas por 60 dias. Entradas que excedem essa data são removidas às 2h, operação realizada diariamente. Em uma instalação madura, somente 60 dias de informações estão disponíveis em um dado momento.

Não é possível definir limites para o número de linhas ou o tipo de entradas registradas.

Habilitar log de execução

  1. Inicie o SQL Server Management Studio com privilégios administrativos. Por exemplo, clique com o botão direito do mouse no ícone do Management Studio e selecione Executar como administrador.

  2. Conecte-se ao servidor de relatório desejado.

  3. Clique com o botão direito do mouse no nome do servidor e selecione Propriedades. Se a opção Propriedades for desabilitada, verifique se você executou o SQL Server Management Studio com privilégios administrativos.

  4. Selecione a página Log.

  5. Selecione Habilitar log de execução de relatório.

Habilitar registro em log detalhado

É necessário habilitar o log conforme descrito nas etapas anteriores e concluir as etapas a seguir:

  1. No diálogo Propriedades do Servidor, selecione a página Avançado.

  2. Na seção Definido pelo usuário , altere o ExecutionLogLevel para detalhado. Esse é um campo de entrada de texto, e os dois valores possíveis são detalhado e normal.

Campos de log (ExecutionLog3)

Esta exibição adicionou mais nós de diagnóstico de desempenho à coluna AdditionalInfo baseada em XML. A coluna AdditionalInfo contém uma estrutura XML de 1 para muitos campos de informação. O exemplo a seguir mostra uma instrução Transact-SQL para recuperar linhas da exibição ExecutionLog3. O exemplo presume que o nome do banco de dados do servidor de relatório seja ReportServer:

Use ReportServer  
select * from ExecutionLog3 order by TimeStart DESC  

A tabela a seguir descreve os dados capturados no log de execução de relatório.

Coluna Descrição
InstanceName Nome da instância de servidor de relatório que manipulou a solicitação. Se seu ambiente tiver mais de um servidor de relatório, você poderá analisar a distribuição de InstanceName para monitorar e determinar se o balanceador da carga de rede distribui solicitações pelos servidores de relatório conforme esperado.
ItemPath Caminho onde um relatório ou item de relatório é armazenado.
UserName Identificador do usuário.
ExecutionID O identificador interno associado a uma solicitação. Solicitações nas mesmas sessões de usuário compartilham o mesmo ID de execução.
RequestType Valores possíveis:

Interativo

Assinatura



A análise dos dados de log filtrados por RequestType=Subscription e classificados por TimeStart pode revelar períodos de uso de assinatura pesados e talvez você queira modificar algumas assinaturas de relatório para um horário diferente.
Formatar Formato de renderização.
Parâmetros Valores de parâmetro usados em uma execução de relatório.
ItemAction Valores possíveis:

Render

Sort

BookMarkNavigation

DocumentNavigation

GetDocumentMap

Findstring

Execute

RenderEdit.
TimeStart Horas de início e parada que indicam a duração de um processo de relatório.
TimeEnd
TimeDataRetrieval Número de milissegundos gastos na recuperação dos dados.
TimeProcessing Número de milissegundos gastos no processamento do relatório.
TimeRendering Número de milissegundos gastos na renderização do relatório.
Fonte Fonte da execução de relatório. Valores possíveis:

Live

Cache: indica uma execução em cache, por exemplo, consultas do conjunto de dados não são executadas ao vivo.

Instantâneo

Histórico

AdHoc: indica um relatório detalhado baseado em modelo de relatório gerado de forma dinâmica. Ele também pode se referir a um relatório do Construtor de Relatórios que é visualizado em um cliente que utiliza o servidor de relatório para processamentos e renderizações.

Sessão: indica uma solicitação de acompanhamento em uma sessão já estabelecida. Por exemplo, a solicitação inicial é para exibir a página 1 e a solicitação de acompanhamento é exportar para o Excel com o estado de sessão atual.

RDCE: indica uma Extensão de Personalização de Definição de Relatório. Uma extensão personalizada RDCE pode personalizar uma definição de relatório dinamicamente antes da definição ser passada ao mecanismo de processamento mediante a execução do relatório.
Status Status (rsSuccess ou um código de erro; se vários erros ocorrerem, só o primeiro erro será registrado).
ByteCount Tamanho de relatórios renderizados em bytes.
RowCount Número de linhas retornadas pelas consultas.
AdditionalInfo Um conjunto de propriedades XML contendo informações adicionais sobre a execução. O conteúdo pode ser diferente para cada linha.

O campo AdditionalInfo

O campo AdditionalInfo é uma estrutura ou um conjunto de propriedades XML contendo informações adicionais sobre a execução. O conteúdo pode ser diferente para cada linha do log.

A seguir estão exemplos de conteúdo do campo AddtionalInfo para registro em log padrão e detalhado:

Exemplo de registro em log padrão de 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>  
  

Exemplo de registro em log detalhado de 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>  
  

Os exemplos a seguir são alguns dos valores que você vê no campo AdditionalInfo:

  • ProcessingEngine

    1=SQL Server 2005, 2=The new On-demand Processing Engine. Se a maioria de seus relatórios ainda estiver mostrando o valor 1, você poderá investigar como reprojetá-los para que utilizem o mecanismo de processamento sob demanda mais novo e eficiente.

    <ProcessingEngine>2</ProcessingEngine>

  • ScalabilityTime

    O número de milissegundos gastos na execução de operações de escala relacionadas no mecanismo de processamento. O valor 0 indica que nenhuma outra hora foi gasta em operações de escala, um 0 também indica que a solicitação não está sob pressão de memória.

    <ScalabilityTime>  
        <Processing>0</Processing>  
    </ScalabilityTime>  
    
  • EstimatedMemoryUsageKB

    Uma estimativa da quantidade máxima de memória, em quilobytes, consumida por cada componente durante uma solicitação específica.

    <EstimatedMemoryUsageKB>  
        <Processing>38</Processing>  
    </EstimatedMemoryUsageKB>  
    
  • DataExtension

    Os tipos de extensões de dados ou fontes de dados usados no relatório. O número é uma contagem do número de ocorrências da fonte de dados específica.

    <DataExtension>  
       <DAX>2</DAX>  
    </DataExtension>  
    
  • ExternalImages

    O valor está em milissegundos. Esses dados podem ser usados para diagnosticar problemas de desempenho. A hora necessária para recuperar imagens de um servidor Web externo talvez torne a execução de relatório geral mais lenta.

    <ExternalImages>  
        <Count>3</Count>  
        <ByteCount>9268</ByteCount>  
        <ResourceFetchTime>9</ResourceFetchTime>  
    </ExternalImages>  
    
  • Conexões

    Uma estrutura em vários níveis

    <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>  
    
    

Campos de log (ExecutionLog2)

Esta exibição adicionou alguns campos novos e renomeou outros. O exemplo a seguir é uma instrução Transact-SQL para recuperar linhas da exibição ExecutionLog2. O exemplo presume que o nome do banco de dados do servidor de relatório seja ReportServer:

Use ReportServer  
select * from ExecutionLog2 order by TimeStart DESC  

A tabela a seguir descreve os dados capturados no log de execução de relatório.

Coluna Descrição
InstanceName Nome da instância de servidor de relatório que manipulou a solicitação.
ReportPath A estrutura de caminho para o relatório. Um relatório salvo na pasta raiz como teste tem um ReportPath de /test.

Um relatório chamado teste, salvo na pasta Amostras teria um ReportPath de /Samples/test/.
UserName Identificador do usuário.
ExecutionID
RequestType O tipo de solicitação é user ou system.
Formatar Formato de renderização.
Parâmetros Valores de parâmetro usados em uma execução de relatório.
ReportAction Valores possíveis: Render, Sort, BookMarkNavigation, DocumentNavigation, GetDocumentMap, Findstring.
TimeStart Hora de início que indica a duração de um processo de relatório.
TimeEnd Hora de término que indica a duração de um processo de relatório.
TimeDataRetrieval Número de milissegundos gastos na recuperação dos dados.
TimeProcessing Número de milissegundos gastos no processamento do relatório.
TimeRendering Número de milissegundos gastos na renderização do relatório.
Fonte Fonte da execução de relatório. As opções são: 1=Live, 2=Cache, 3=Snapshot e 4=History.
Status O status é rsSuccess ou um código de erro. Se vários erros ocorrerem, apenas o primeiro erro será registrado).
ByteCount Tamanho de relatórios renderizados em bytes.
RowCount Número de linhas retornadas pelas consultas.
AdditionalInfo Um conjunto de propriedades XML contendo informações adicionais sobre a execução.

Campos de log (ExecutionLog)

O exemplo a seguir é uma instrução Transact-SQL que recupera linhas da exibição ExecutionLog. O exemplo presume que o nome do banco de dados do servidor de relatório seja ReportServer:

Use ReportServer  
select * from ExecutionLog order by TimeStart DESC  
  

A tabela a seguir descreve os dados capturados no log de execução de relatório.

Coluna Descrição
InstanceName Nome da instância de servidor de relatório que manipulou a solicitação.
ReportID Identificador do relatório.
UserName Identificador do usuário.
RequestType Valores possíveis:

True = Uma solicitação de assinatura

False = Uma solicitação interativa
Formatar Formato de renderização.
Parâmetros Valores de parâmetro usados em uma execução de relatório.
TimeStart Horas de início e parada que indicam a duração de um processo de relatório.
TimeEnd
TimeDataRetrieval Número de milissegundos gastos na recuperação dos dados, no processamento do relatório e na renderização do relatório.
TimeProcessing
TimeRendering
Fonte Fonte da execução de relatório. Valores possíveis: (1=Ativo, 2=Cache, 3=Instantâneo, 4=Histórico, 5=Ad hoc, 6=Sessão, 7=RDCE).
Status Os valores possíveis são rsSuccess, rsProcessingAborted ou um código de erro. Se vários erros ocorrerem, só o primeiro erro será registrado.
ByteCount Tamanho de relatórios renderizados em bytes.
RowCount Número de linhas retornadas pelas consultas.

Turn on Reporting Services events for the SharePoint trace log (ULS)
Fontes e arquivos de log do Reporting Services
Referência de erros e eventos (Reporting Services)