Journal d’exécution du serveur de rapports et vue ExecutionLog3

Le journal d'exécution du serveur de rapports Reporting Services contient des informations sur les rapports exécutés sur le serveur ou sur plusieurs serveurs. Ces serveurs font partie d'un déploiement en mode natif de type scale-out ou une batterie de serveurs SharePoint. Vous pouvez utiliser le journal d'exécution de rapport pour découvrir :

  • à quelle fréquence un rapport est-il demandé ;
  • quels formats de sortie sont le plus utilisés ;
  • combien de millisecondes de temps de traitement sont consacrées à chaque phase de traitement.

Le journal contient des informations sur le temps passé pour l'exécution d'une requête de dataset dans un rapport et le temps passé pour le traitement des données. Si vous êtes administrateur du serveur de rapports, vous pouvez examiner les informations du journal et identifier les tâches durables. Vous pouvez également faire des suggestions aux auteurs de rapports sur les zones du jeu de données ou le traitement du rapport qu'ils peuvent améliorer.

Les serveurs de rapports configurés pour le mode SharePoint peuvent également utiliser les journaux ULS de SharePoint. Pour plus d’informations, consultez Activer des événements Reporting Services pour le journal des traces SharePoint (ULS)

Afficher les informations des journaux

Le serveur de rapports consigne les données sur l'exécution des rapports dans une table de base de données interne. Les informations de la table sont fournies par les vues de SQL Server.

Le journal d'exécution des rapports est stocké dans la base de données du serveur de rapports nommée par défaut ReportServer. Les vues SQL fournissent les informations associées au journal d'exécution. Les vues « 2 » et « 3 » ont été ajoutées dans les dernières versions et contiennent de nouveaux champs ou des champs avec des noms plus conviviaux que dans les versions précédentes. Les anciennes vues sont toujours présentes dans le produit de sorte que les applications personnalisées qui dépendent d'elles ne sont pas impactées. Si vous ne dépendez pas d'une vue plus ancienne, par exemple ExecutionLog, vous devez utiliser la vue la plus récente, ExecutionLog3.

Contenu de cet article :

Paramètres de configuration d'un serveur de rapports en mode SharePoint

Vous pouvez activer ou désactiver la journalisation de l'exécution des rapports dans les paramètres système d'une application de service Reporting Services .

Par défaut, les entrées de journal sont conservées pendant 60 jours. Au-delà de cette date, les entrées sont supprimées à 02:00 tous les jours. Dans une installation déjà rodée, seuls 60 jours d'informations sont disponibles à tout moment.

Vous ne pouvez pas définir de limites pour le nombre de lignes ou le type d'entrées enregistrées.

Activer la journalisation des exécutions

  1. Dans l'Administration centrale de SharePoint, sélectionnez Gérer les applications de service dans le groupe Gestion des applications.

  2. Choisissez le nom de l'application de service Reporting Services à configurer.

  3. Sélectionnez Paramètres du système.

  4. Sélectionnez Activer la journalisation des exécutions dans la section Enregistrement .

  5. Cliquez sur OK.

Activez la journalisation commentée

Vous devez activer la journalisation comme le décrivent les étapes précédentes, puis effectuer les étapes suivantes :

  1. Dans la page Paramètres système de votre application de service Reporting Services , recherchez la section Défini par l’utilisateur .

  2. Modifiez ExecutionLogLevel en verbose. Ce champ est un champ d'entrée de texte et les deux valeurs possibles sont verbose et normal.

Paramètres de configuration d'un serveur de rapports en mode natif

Vous pouvez activer ou désactiver la journalisation de l'exécution de rapports dans la page Propriétés du serveur de SQL Server Management Studio. EnableExecutionLogging est une propriété avancée.

Par défaut, les entrées de journal sont conservées pendant 60 jours. Au-delà de cette date, les entrées sont supprimées à 02:00 tous les jours. Dans une installation déjà rodée, seuls 60 jours d'informations sont disponibles à tout moment.

Vous ne pouvez pas définir de limites pour le nombre de lignes ou le type d'entrées enregistrées.

Activer la journalisation des exécutions

  1. Ouvrez SQL Server Management Studio avec des privilèges d'administrateur. Par exemple, cliquez avec le bouton droit sur l'icône Management Studio et sélectionnez Exécuter en tant qu'administrateur.

  2. Connectez-vous au serveur de rapports souhaité.

  3. Cliquez avec le bouton droit sur le nom du serveur, puis sélectionnez Propriétés. Si l'option Propriétés est désactivée, vérifiez que vous avez ouvert SQL Server Management Studio avec des privilèges administratifs.

  4. Sélectionnez la page Journalisation.

  5. Sélectionnez Activer la journalisation de l'exécution des rapports.

Activez la journalisation commentée

Vous devez activer la journalisation comme le décrivent les étapes précédentes, puis effectuer les étapes suivantes :

  1. Dans la boîte de dialogue Propriétés du serveur, sélectionnez sur la page Avancé.

  2. Dans la section Défini par l’utilisateur , modifiez ExecutionLogLevel sur verbose. Ce champ est un champ d'entrée de texte et les deux valeurs possibles sont verbose et normal.

Champs de journalisation (ExecutionLog3)

Dans cette vue, un nœud de diagnostic de performances supplémentaire est ajouté dans la colonne AdditionalInfo basée sur XML. La colonne AdditionalInfo contient une structure XML de 1 à plusieurs champs d'information. L'exemple suivant montre une instruction Transact SQL qui extrait des lignes de la vue ExecutionLog3. L'exemple suppose que la base de données du serveur de rapports est nommée ReportServer:

Use ReportServer  
select * from ExecutionLog3 order by TimeStart DESC  

La table suivante décrit les données qui sont capturées dans le journal d'exécution des rapports.

Colonne Description
InstanceName Nom de l'instance du serveur de rapports qui a géré la demande. Si votre environnement inclut plusieurs serveurs de rapports, vous pouvez analyser la distribution InstanceName pour surveiller et déterminer si votre programme d'équilibrage de la charge réseau distribue les requêtes entre les différents serveurs de rapports comme prévu.
ItemPath Chemin de stockage d'un rapport ou d'un élément de rapport
UserName Identificateur de l'utilisateur.
ExecutionID Identificateur interne associé à une requête. Les requêtes sur les mêmes sessions utilisateur partagent le même ID d'exécution.
RequestType Valeurs possibles :

Interactive

Abonnement



L'analyse des données du journal filtrées par RequestType=Subscription et triées TimeStart par peut révéler des périodes de forte utilisation de l'abonnement et vous pouvez vouloir modifier certains abonnements à des rapports à une heure différente.
Mettre en forme Format de rendu.
Paramètres Valeurs des paramètres utilisées pour une exécution de rapport.
ItemAction Valeurs possibles :

Render

Sort

BookMarkNavigation

DocumentNavigation

GetDocumentMap

Findstring

Execute

RenderEdit.
TimeStart Heures de début et de fin qui indiquent la durée d'un traitement de rapport.
TimeEnd
TimeDataRetrieval Nombre de millisecondes passées pour la récupération des données.
TimeProcessing Nombre de millisecondes passées pour le traitement du rapport.
TimeRendering Nombre de millisecondes passées pour le rendu du rapport.
Source Source d'exécution du rapport. Valeurs possibles :

En direct

Cache : indique une exécution mise en cache ; par exemple, les requêtes de jeu de données ne sont pas exécutées en direct.

Instantané

Historique

AdHoc : indique un modèle de rapport généré de manière dynamique en fonction du rapport d'extraction. Il peut également faire référence à un rapport Générateur de rapports en aperçu chez un client utilisant le serveur de rapports pour le traitement et le rendu.

Session : indique une requête de suivi dans une session déjà établie. Par exemple, la requête initiale concerne l'affichage de la page 1 et la requête de suivi concerne l'exportation vers Excel avec l'état de session active.

RDCE : indique une extension RDCE (Report Definition Customization Extension). Une extension RDCE personnalisée peut personnaliser dynamiquement une définition de rapport avant qu'elle ne soit passée au moteur de traitement lors de l'exécution.
État État (soit rsSuccess, soit un code d'erreur. En cas de plusieurs erreurs, seule la première est enregistrée).
ByteCount Taille en octets des rapports rendus.
RowCount Nombre de lignes retournées par les requêtes.
AdditionalInfo Conteneur de propriétés XML contenant des informations supplémentaires sur l'exécution. Le contenu peut être différent pour chaque ligne.

Champ AdditionalInfo

Le champ AdditionalInfo est un conteneur de propriétés ou une structure XML contenant des informations supplémentaires sur l'exécution. Le contenu peut être différent pour chaque ligne dans le journal.

Voici plusieurs exemples de contenu du champ AddtionalInfo pour la journalisation standard et commentée :

Exemple de journalisation standard d'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>  
  

Exemple de journalisation commentée d'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>  
  

Les exemples suivants illustrent certaines des valeurs figurant dans le champ AdditionalInfo :

  • ProcessingEngine

    1=SQL Server 2005, 2=The new On-demand Processing Engine. Si la plupart de vos rapports affichent toujours la valeur 1, vous pouvez envisager de les reconcevoir afin qu'ils utilisent le nouveau moteur de traitement à la demande, plus efficace.

    <ProcessingEngine>2</ProcessingEngine>

  • ScalabilityTime

    Nombre de millisecondes passées pour exécuter des opérations d'échelle dans le moteur de traitement. Une valeur de 0 indique qu'aucun autre temps n'a été consacré aux opérations de mise à l'échelle et une valeur de 0 indique également que la demande n'est pas soumise à une sollicitation de la mémoire.

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

    Estimation de la quantité maximale de mémoire, en kilo-octets, consommée par chaque composant pendant une requête particulière.

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

    Types d'extensions de données ou de sources de données utilisées dans le rapport. Le nombre représente le nombre d'occurrences de la source de données spécifique.

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

    Cette valeur est exprimée en millisecondes. Ces données peuvent être utilisées pour diagnostiquer les problèmes de performances. Le temps nécessaire pour extraire les images d'un serveur web externe peut ralentir l'exécution globale du rapport.

    <ExternalImages>  
        <Count>3</Count>  
        <ByteCount>9268</ByteCount>  
        <ResourceFetchTime>9</ResourceFetchTime>  
    </ExternalImages>  
    
  • Connexions

    Structure à plusieurs niveaux

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

Champs de journalisation (ExecutionLog2)

Cette vue ajoute de nouveaux champs et contient des champs renommés. L'exemple suivant est une instruction Transact SQL qui extrait des lignes de la vue ExecutionLog2. L'exemple suppose que la base de données du serveur de rapports est nommée ReportServer:

Use ReportServer  
select * from ExecutionLog2 order by TimeStart DESC  

La table suivante décrit les données qui sont capturées dans le journal d'exécution des rapports.

Colonne Description
InstanceName Nom de l'instance du serveur de rapports qui a géré la demande.
ReportPath Structure du chemin d'accès au rapport. Un rapport enregistré dans le dossier racine sous test, a un ReportPath de /test.

Un rapport nommé test, enregistré dans le dossier Samples, aurait un ReportPath de /Samples/test/.
UserName Identificateur de l'utilisateur.
ExecutionID
RequestType Le type de demande est user ou system.
Mettre en forme Format de rendu.
Paramètres Valeurs des paramètres utilisées pour une exécution de rapport.
ReportAction Valeurs possibles : Render, Sort, BookMarkNavigation, DocumentNavigation, GetDocumentMap, Findstring.
TimeStart Heure de début qui indique la durée d'un traitement de rapport.
TimeEnd Heure de fin qui indique la durée d'un traitement de rapport.
TimeDataRetrieval Nombre de millisecondes passées pour la récupération des données.
TimeProcessing Nombre de millisecondes passées pour le traitement du rapport.
TimeRendering Nombre de millisecondes passées pour le rendu du rapport.
Source Source d'exécution du rapport. Les options sont : 1=Live, 2=Cache, 3=Snapshot, 4=History.
État L'état est soit rsSuccess, soit un code d'erreur. Si plusieurs erreurs se produisent, seule la première erreur est enregistrée).
ByteCount Taille en octets des rapports rendus.
RowCount Nombre de lignes retournées par les requêtes.
AdditionalInfo Conteneur de propriétés XML contenant des informations supplémentaires sur l'exécution.

Champs de journalisation (ExecutionLog)

L'exemple suivant est une instruction Transact SQL qui extrait des lignes de la vue ExecutionLog. L'exemple suppose que la base de données du serveur de rapports est nommée ReportServer:

Use ReportServer  
select * from ExecutionLog order by TimeStart DESC  
  

La table suivante décrit les données qui sont capturées dans le journal d'exécution des rapports.

Colonne Description
InstanceName Nom de l'instance du serveur de rapports qui a géré la demande.
ReportID Identificateur du rapport.
UserName Identificateur de l'utilisateur.
RequestType Valeurs possibles :

True = Demande d'abonnement

False= Demande interactive
Format Format de rendu.
Paramètres Valeurs des paramètres utilisées pour une exécution de rapport.
TimeStart Heures de début et de fin qui indiquent la durée d'un traitement de rapport.
TimeEnd
TimeDataRetrieval Nombre de millisecondes consacré à la récupération des données, au traitement du rapport et au rendu du rapport.
TimeProcessing
TimeRendering
Source Source d'exécution du rapport. Valeurs possibles : (1=Actif, 2=Cache, 3=Instantané, 4=Historique, 5=Adhoc, 6=Session, 7=RDCE).
État Les valeurs possibles sont rsSuccess, rsProcessingAborted ou un code d'erreur. Si plusieurs erreurs se produisent, seule la première erreur est enregistrée.
ByteCount Taille en octets des rapports rendus.
RowCount Nombre de lignes retournées par les requêtes.

Activer des événements Reporting Services pour le journal des traces SharePoint (ULS)
Fichiers journaux et sources de Reporting Services
Guide de référence des erreurs et des événements (Reporting Services)