Usare la vista ExecutionLog ed ExecutionLog3 in Reporting Services
Nel log di esecuzione del server di report di Reporting Services sono incluse informazioni sui report eseguiti in uno o più server. Questi server si trovano in una distribuzione con scalabilità orizzontale in modalità nativa o in una farm di SharePoint. È possibile usare il log di esecuzione del report per scoprire:
- Numero di richieste di un report.
- Quali formati di output vengono usati di più.
- Ill tempo di elaborazione impiegato per ogni fase di elaborazione in millisecondi.
Nel log, inoltre, sono contenute informazioni sul tempo impiegato per l'esecuzione di una query del set di dati di un report e su quello speso per l'elaborazione dei dati. Gli amministratori del server di report possono esaminare le informazioni di log e identificare le attività a esecuzione prolungata. È anche possibile inviare suggerimenti agli autori di report sulle aree del set di dati o sull'elaborazione del report che potrebbero essere in grado di migliorare.
Nei server di report configurati per la modalità SharePoint possono essere usati anche i log del Servizio di registrazione unificato (ULS) di SharePoint. Per altre informazioni, vedere Abilitare gli eventi di Reporting Services per il log di traccia di SharePoint (ULS)
Visualizzare informazioni sul log
Nel server di report vengono registrati i dati sui report in una tabella interna del database. Le informazioni della tabella sono disponibili dalle viste SQL Server.
Il log di esecuzione del report viene archiviato nel database del server di report denominato ReportServerper impostazione predefinita. Nelle viste SQL sono incluse le informazioni sul log di esecuzione. Le viste "2" e "3" sono state aggiunte in versioni più recenti e contengono nuovi campi oppure campi con nomi più descrittivi rispetto alle versioni precedenti. Le viste precedenti rimangono nel prodotto, così non vengono influenzate le applicazioni personalizzate basata su di esse. Se non si dispone di una dipendenza da una vista precedente, ad esempio ExecutionLog, si consiglia di usare la vista più recente, ExecutionLog3.
Impostazioni di configurazione per un server di report in modalità SharePoint
È possibile abilitare o disabilitare la registrazione per l'esecuzione del report dalle impostazioni di sistema di un'applicazione del servizio Reporting Services.
Per impostazione predefinita, le voci di log vengono mantenute per 60 giorni. Ogni giorno, alle 14.00, vengono rimosse le voci antecedenti In un'installazione datata sono disponibili solo 60 giorni di informazioni in qualsiasi momento.
Non è possibile impostare limiti sul numero di righe o sul tipo di voci registrate.
Abilitare la registrazione dell'esecuzione per un server SharePoint
Da Amministrazione centrale SharePoint selezionare Gestisci applicazioni di servizio nel gruppo Gestione applicazioni.
Selezionare il nome dell'applicazione del servizio Reporting Services da configurare.
Seleziona Impostazioni di sistema:
Selezionare Abilita registrazione di esecuzione nella sezione Registrazione .
Seleziona OK.
Abilitare la registrazione dettagliata per un server SharePoint
La registrazione deve essere abilitata come descritto nei passaggi precedenti e successivamente completare i passaggi seguenti:
Nella pagina Impostazioni sistema dell'applicazione del servizio Reporting Services trovare la sezione Definito dall'utente.
Impostare ExecutionLogLevel su verbose(dettagliato). Si tratta di un campo di immissione testo e i due valori possibili sono verbose (dettagliato) e normal(normale).
Impostazioni di configurazione per un server di report in modalità nativa
È possibile abilitare o disabilitare la registrazione per l'esecuzione del report dalla pagina Proprietà server in SQL Server Management Studio. EnableExecutionLogging è una proprietà avanzata.
Per impostazione predefinita, le voci di log vengono mantenute per 60 giorni. Ogni giorno, alle 14.00, vengono rimosse le voci antecedenti In un'installazione datata sono disponibili solo 60 giorni di informazioni in qualsiasi momento.
Non è possibile impostare limiti sul numero di righe o sul tipo di voci registrate.
Abilitare la registrazione dell'esecuzione per un server in modalità nativa
Avviare SQL Server Management Studio con privilegi amministrativi. Ad esempio, fare clic con il pulsante destro del mouse sull'icona di Management Studio e scegliere Esegui come amministratore.
Connettersi al server di report desiderato.
Fare clic con il pulsante destro del mouse sul nome del server e scegliere Proprietà. Se l'opzione Proprietà è disabilitata, verificare che SQL Server Management Studio venga eseguito con i privilegi amministrativi.
Selezionare la pagina Registrazione.
Selezionare Abilita la registrazione per l'esecuzione di report.
Abilitare la registrazione dettagliata per un server in modalità nativa
La registrazione deve essere abilitata come descritto nei passaggi precedenti e successivamente completare i passaggi seguenti:
Dalla finestra di dialogo Proprietà server, selezionare la pagina Avanzate.
Nella sezione Definito dall'utente impostare ExecutionLogLevel su verbose(dettagliato). Si tratta di un campo di immissione testo e i due valori possibili sono verbose (dettagliato) e normal(normale).
Campi del log (ExecutionLog3)
In questa vista sono aggiunti dei nodi di diagnostica delle prestazioni all'interno della colonna AdditionalInfo basata su XML. La colonna AdditionalInfo contiene una struttura XML da 1 a molti campi di informazioni. Nell'esempio seguente viene illustrata un'istruzione Transact SQL che recupera righe dalla vista ExecutionLog3. Nell'esempio si presuppone che il database del server di report sia denominato ReportServer:
Use ReportServer
select * from ExecutionLog3 order by TimeStart DESC
Nella tabella seguente vengono descritti i dati acquisiti nel log di esecuzione del report.
Colonna | Descrizione |
---|---|
InstanceName | Nome dell'istanza del server di report tramite cui è stata gestita la richiesta. Se nell'ambiente è disponibile più di un server di report, è possibile analizzare la distribuzione di InstanceName per monitorare e determinare se tramite il servizio di bilanciamento del carico di rete vengono distribuite richieste attraverso i server di report come previsto. |
ItemPath | Percorso in cui viene archiviato un report o un elemento del report. |
UserName | Identificatore dell'utente. |
ExecutionID | L'identificatore interno associato a una richiesta. Le richieste nelle sessioni dello stesso utente condividono lo stesso ID esecuzione. |
RequestType | I valori possibili sono: Interattivo Abbonamento L'analisi dei dati del log filtrati in base RequestType=Subscription e ordinati per TimeStart può rivelare periodi di utilizzo eccessivo della sottoscrizione ed è pertanto necessario modificare alcune delle sottoscrizioni del report a un'ora diversa. |
Formato | Formato di rendering. |
Parametri | Valori dei parametri usati per l'esecuzione del report. |
ItemAction | Valori possibili:Render Sort BookMarkNavigation DocumentNavigation GetDocumentMap Findstring Execute RenderEdit . |
TimeStart | Ora di inizio e ora dell'arresto, che indicano la durata dell'elaborazione del report. |
TimeEnd | |
TimeDataRetrieval | Numero di millisecondi impiegati per il recupero dei dati. |
TimeProcessing | Numero di millisecondi impiegati per l'elaborazione del report. |
TimeRendering | Numero di millisecondi impiegati per il rendering del report. |
Origine | Origine dell'esecuzione del report. Valori possibili: Live Cache: indica un'esecuzione memorizzata nella cache, ad esempio le query del set di dati che non vengono eseguite in tempo reale. Snapshot Cronologia AdHoc: indica un report drill-through basato su modello di report generato dinamicamente. Può anche fare riferimento a un report Generatore di report visualizzato in anteprima in un client che utilizza il server di report per l'elaborazione e il rendering. Sessione: indica una richiesta di completamento in una sessione già stabilita. Ad esempio la richiesta iniziale è di visualizzare la pagina 1 e la richiesta di completamento è di esportare in Excel con lo stato della sessione corrente. Estensione di personalizzazione della definizione del report (RDCE): indica un'estensione di personalizzazione della definizione del report. Un'estensione personalizzata RDCE consente di personalizzare in modo dinamico la definizione di un report prima che venga passata al motore di elaborazione all'esecuzione del report. |
Status | Stato (rsSuccess oppure un codice di errore; in caso di più errori, viene registrato solo il primo). |
ByteCount | Dimensione dei report visualizzabili, in byte. |
RowCount | Numero di righe restituite dalle query. |
AdditionalInfo | Contenitore di proprietà XML in cui sono incluse informazioni aggiuntive sull'esecuzione. Il contenuto può essere diverso per ogni riga. |
Campo AdditionalInfo
Il campo AdditionalInfo è un contenitore o struttura di proprietà XML contenente informazioni aggiuntive sull'esecuzione. Il contenuto può essere diverso per ogni riga del log.
Gli esempi seguenti mostrano il contenuto del campo AddtionalInfo per la registrazione standard e dettagliata:
Esempio di registrazione standard di 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>
Esempio di registrazione dettagliata di 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>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>
Negli esempi seguenti sono riportati alcuni dei valori visualizzati nel campo AddtionalInfo:
ProcessingEngine
Se nella maggior parte dei report viene ancora mostrato il valore 1, è possibile esaminare come riprogettare questi report in modo che in essi venga utilizzato il motore di elaborazione su richiesta più nuovo e più efficiente.
1=SQL Server 2005, 2=The new On-demand Processing Engine
<ProcessingEngine>2</ProcessingEngine>
ScalabilityTime
Numero di millisecondi impiegati per l'esecuzione delle operazioni correlate alla scala nel motore di elaborazione. Un valore
0
indica che non è stato impiegato ulteriore tempo per operazioni di scala.0
indica inoltre che la richiesta non determina un utilizzo eccessivo della memoria.<ScalabilityTime> <Processing>0</Processing> </ScalabilityTime>
EstimatedMemoryUsageKB
Stima della quantità massima di memoria, in KB, usata da ogni componente durante una particolare richiesta.
<EstimatedMemoryUsageKB> <Processing>38</Processing> </EstimatedMemoryUsageKB>
DataExtension
Tipi di estensioni o di origini dei dati usate nel report. Il numero è quello delle occorrenze dell'origine dati specificata.
<DataExtension> <DAX>2</DAX> </DataExtension>
ExternalImages
Il valore è espresso in millisecondi. Queste informazioni possono essere usate nella diagnosi dei problemi di prestazioni. Il tempo necessario a recuperare le immagini da un server Web esterno può rallentare l'esecuzione del report complessiva.
<ExternalImages> <Count>3</Count> <ByteCount>9268</ByteCount> <ResourceFetchTime>9</ResourceFetchTime> </ExternalImages>
Connessioni
Struttura multilivello
<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>
Campi del log (ExecutionLog2)
In questa vista sono stati aggiunti alcuni campi nuovi e ne sono stati rinominati alcuni altri. Nell'esempio seguente viene illustrata un'istruzione Transact SQL che recupera righe dalla vista ExecutionLog2. Nell'esempio si presuppone che il database del server di report sia denominato ReportServer
:
Use ReportServer
select * from ExecutionLog2 order by TimeStart DESC
Nella tabella seguente vengono descritti i dati acquisiti nel log di esecuzione del report.
Colonna | Descrizione |
---|---|
InstanceName | Nome dell'istanza del server di report tramite cui è stata gestita la richiesta. |
ReportPath | Struttura del percorso del report. Per un report salvato nella cartella radice test, il valore di ReportPath è /test .Per un report denominato test salvato nella cartella samples, il valore di ReportPath sarà /Samples/test/ . |
UserName | Identificatore dell'utente. |
ExecutionID | |
RequestType | Il tipo di richiesta è user o system . |
Formato | Formato di rendering. |
Parametri | Valori dei parametri usati per l'esecuzione del report. |
ReportAction | Valori possibili: Render , Sort , BookMarkNavigation , DocumentNavigation , GetDocumentMap , Findstring . |
TimeStart | Ora di inizio che indica la durata dell'elaborazione del report. |
TimeEnd | Ora di fine che indica la durata dell'elaborazione del report. |
TimeDataRetrieval | Numero di millisecondi impiegati per il recupero dei dati. |
TimeProcessing | Numero di millisecondi impiegati per l'elaborazione del report. |
TimeRendering | Numero di millisecondi impiegati per il rendering del report. |
Origine | Origine dell'esecuzione del report. Le opzioni sono 1=Live , 2=Cache , 3=Snapshot , 4=History . |
Status | Lo stato è rsSuccess o un codice errore. Se si verificano più errori, viene registrato solo il primo. |
ByteCount | Dimensione dei report visualizzabili, in byte. |
RowCount | Numero di righe restituite dalle query. |
AdditionalInfo | Contenitore di proprietà XML in cui sono incluse informazioni aggiuntive sull'esecuzione. |
Campi del log (ExecutionLog)
Nell'esempio seguente viene illustrata un'istruzione Transact SQL che recupera righe dalla vista ExecutionLog. Nell'esempio si presuppone che il database del server di report sia denominato ReportServer
:
Use ReportServer
select * from ExecutionLog order by TimeStart DESC
Nella tabella seguente vengono descritti i dati acquisiti nel log di esecuzione del report.
Colonna | Descrizione |
---|---|
InstanceName | Nome dell'istanza del server di report tramite cui è stata gestita la richiesta. |
ReportID | Identificatore del report. |
UserName | Identificatore dell'utente. |
RequestType | Valori possibili: True = Richiesta di sottoscrizione False= Richiesta interattiva |
Formato | Formato di rendering. |
Parametri | Valori dei parametri usati per l'esecuzione del report. |
TimeStart | Ora di inizio e ora dell'arresto, che indicano la durata dell'elaborazione del report. |
TimeEnd | |
TimeDataRetrieval | Numero di millisecondi dedicati al recupero dei dati, all'elaborazione del report e al rendering del report. |
TimeProcessing | |
TimeRendering | |
Origine | Origine dell'esecuzione del report. Valori possibili: 1=Live, 2=Cache, 3=Snapshot, 4=History, 5=Adhoc, 6=Session, 7=RDCE. |
Status | I valori possibili sono rsSuccess , rsProcessingAborted o un codice errore. Se si verificano più errori, viene registrato solo il primo. |
ByteCount | Dimensione dei report visualizzabili, in byte. |
RowCount | Numero di righe restituite dalle query. |