Uso da exibição do ExecutionLog e do ExecutionLog3 no Reporting Services
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:
- O número de vezes que um relatório é solicitado.
- Quais são os formatos de saída mais usados.
- O tempo de processamento dedicado em cada fase de processamento em milissegundos.
Os logs contêm informações sobre o tempo dedicado na execução da consulta do conjunto de dados de um relatório e o tempo dedicado 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órios configurados para o modo do SharePoint também podem usar os logs do Serviço de Log Unificado (ULS, na sigla em inglês) do SharePoint. Para obter mais informações, confira Ativar eventos do Reporting Services para o log de rastreamento do SharePoint (ULS)
Exibir informações do log
O servidor de relatório registra em logs dados sobre a execução dos relatórios em uma tabela interna do banco de dados. 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 em versões mais recentes e contêm novos campos, ou campos com nomes mais amigáveis em comparação com 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.
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 o registro em logs da execução para um servidor do SharePoint
Na Administração Central do SharePoint, selecione Gerenciar aplicativos de serviço no grupo Gerenciamento de Aplicativo.
Escolhao nome do aplicativo de serviço do Reporting Services a ser configurado.
Selecione Configurações do Sistema.
Selecione Habilitar Log de Execução na seção Log .
Selecione OK.
Habilitar o registro em logs detalhado para um servidor do SharePoint
É necessário habilitar o log conforme descrito nas etapas anteriores e concluir as etapas a seguir:
Na página Configurações do Sistema do aplicativo de serviços Reporting Services, localize a 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.
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 o registro em logs da execução para um servidor no modo nativo
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.
Conecte-se ao servidor de relatório desejado.
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.
Selecione a página Log.
Selecione Habilitar log de execução de relatório.
Habilitar o registro em logs detalhado para um servidor no modo nativo
É necessário habilitar o log conforme descrito nas etapas anteriores e concluir as etapas a seguir:
No diálogo Propriedades do Servidor, selecione a página Avançado.
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)
Essa exibição adiciona mais nós do Performance Diagnostics na coluna AdditionalInfo, que é baseada em XML. A coluna AdditionalInfo contém uma estrutura XML de 1 para muitos campos de informação. O exemplo apresentado a seguir mostra uma instrução Transact-SQL que recupera linhas da exibição do 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 apresentada a seguir descreve os dados que são capturados nos logs da execução do 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. Esse termo também pode se referir a um relatório do Report Builder que é visualizado previamente em um cliente ao usar o servidor de relatório para processamento e renderização. 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. Extensão de Personalização de Definição de Relatório (RDCE, na sigla em inglês): 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 corresponde uma estrutura ou a um recipiente de propriedades em XML que contém informações adicionais sobre a execução. O conteúdo pode ser diferente para cada linha do log.
A seguir, são apresentados exemplos do conteúdo do campo AddtionalInfo para registros em logs standard e detalhados:
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 apresentados a seguir correspondem a alguns dos valores que você encontra no campo AdditionalInfo:
ProcessingEngine
Se a maioria dos seus relatórios continuar mostrar o valor 1, você poderá investigar como projetá-los novamente para usar o mecanismo de processamento sob demanda mais recente e eficiente.
1=SQL Server 2005, 2=The new On-demand Processing Engine
<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, um0
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. A amostra apresentada a seguir corresponde a uma instrução Transact-SQL que recupera linhas da exibição do ExecutionLog2. A amostra assume que o banco de dados do servidor de relatório se chama ReportServer
:
Use ReportServer
select * from ExecutionLog2 order by TimeStart DESC
A tabela apresentada a seguir descreve os dados que são capturados nos logs da execução do 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 com o nome test e salvo na pasta Samples, teria um ReportPath igual a /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, 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. |
Campos de log (ExecutionLog)
O exemplo a seguir é uma instrução Transact-SQL que recupera linhas da exibição ExecutionLog. A amostra assume que o banco de dados do servidor de relatório se chama ReportServer
:
Use ReportServer
select * from ExecutionLog order by TimeStart DESC
A tabela apresentada a seguir descreve os dados que são capturados nos logs da execução do 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. |