Share via


Caching dei report in Reporting Services

Nel server di report è possibile archiviare nella cache una copia di un report già elaborato, che verrà utilizzata quando un utente apre il report. Per l'utente, l'unico elemento disponibile per indicare che il report è una copia memorizzata nella cache è rappresentato dalla data e dall'ora di esecuzione del report. Se la data e l'ora non sono quelle correnti e se il report non è uno snapshot, significa che il report è stato recuperato dalla cache.

Il caching può ridurre il tempo necessario per recuperare un report se questo è di grandi dimensioni o viene aperto frequentemente. Se il server viene riavviato, tutte le istanze memorizzate nella cache vengono ripristinate quando il servizio Web ReportServer viene riattivato.

Il caching è una tecnica per il miglioramento delle prestazioni. Il contenuto della cache è volatile e può cambiare in seguito all'aggiunta, alla sostituzione e alla rimozione di report. Se si desidera una strategia di caching più prevedibile, è consigliabile creare uno snapshot del report. Per ulteriori informazioni, vedere Impostazione delle proprietà di esecuzione dei report.

[!NOTA] In Reporting Services i file temporanei vengono archiviati in un database per supportare le sessioni utente e l'elaborazione dei report. Questi file vengono memorizzati nella cache per uso interno e per il supporto di una visualizzazione uniforme nel corso di un'unica sessione del browser. Per ulteriori informazioni sulle modalità di memorizzazione nella cache di file temporanei a uso interno, vedere Database del server di report.

Istanze memorizzate nella cache

Un'istanza di un report memorizzata nella cache si basa sul formato temporaneo di un report. Nella cache del server di report viene in genere memorizzata una sola istanza di un report basata sul nome del report. Se tuttavia un report può contenere dati diversi in base ai parametri delle query, potrebbero risultare memorizzate nella cache più versioni del report contemporaneamente. Si supponga, ad esempio, di disporre di un report con parametri che accetta un indicativo di paese come valore di parametro. Se quattro utenti diversi specificano quattro indicativi di paese diversi, nella cache vengono create quattro copie del report.

Il primo utente che esegue il report con un indicativo di paese specifico determina la memorizzazione nella cache di un report che contiene i dati per tale paese. Per gli utenti che successivamente richiederanno il report con lo stesso indicativo di paese, verrà utilizzata la copia memorizzata nella cache.

Non tutti i report possono essere memorizzati nella cache. Se per un report sono inclusi dati in base agli utenti, vengono richieste credenziali agli utenti, oppure viene utilizzata l'autenticazione di Windows, il report non viene memorizzato nella cache.

Aggiornamento della cache

Quando un utente seleziona un report dopo la scadenza della copia precedentemente memorizzata nella cache, il report memorizzato nella cache viene sostituito con una versione più recente. I report che sono configurati per l'esecuzione come istanze memorizzate nella cache vengono rimossi dalla cache a intervalli regolari in base alle impostazioni per la scadenza. È possibile impostare la scadenza di un report in minuti o a un'ora pianificata, come determinato dal requisito di attualità dei dati. Non è possibile eliminare direttamente i report dalla cache, a meno che non si utilizzi l'API SOAP.

Per configurare la scadenza della cache, è possibile utilizzare una pianificazione condivisa o una pianificazione in base al report. Se si utilizza una pianificazione condivisa che in seguito viene sospesa, la cache non scade durante l'intervallo di sospensione. Se una pianificazione condivisa viene eliminata, una copia delle impostazioni della pianificazione viene salvata come pianificazione specifica del report.

Se una pianificazione scade o se il motore di pianificazione non è disponibile alla data della scadenza della cache, il server di report esegue un report live fino a quando non sarà possibile riprendere le operazioni pianificate (estendendo la pianificazione o avviando il servizio di pianificazione).

Precaricamento della cache

Per ottimizzare le prestazioni del server, è possibile eseguire il precaricamento della cache. Per il precaricamento della cache con un insieme di istanze di report con parametri, creare una sottoscrizione guidata dai dati che utilizza il provider recapito Null. Quando viene specificato il provider recapito Null come metodo di recapito nella sottoscrizione, il server di report indica il database del server di report come destinazione del recapito e utilizza un'estensione per il rendering specializzata denominata estensione per il rendering Null.

Questa funzionalità è particolarmente utile se si desidera memorizzare nella cache più istanze di un report con parametri, dove vengono utilizzati valori di parametro diversi per generare istanze del report diverse. Si noti che nel report è possibile specificare solo parametri basati su query. A differenza delle altre estensioni per il recapito, l'estensione provider recapito Null non ha impostazioni per il recapito che possono essere configurate tramite una definizione di sottoscrizione.

Quando si crea una sottoscrizione guidata dai dati, è necessario pianificare la frequenza con cui i report vengono recapitati alla cache. Per recapitare le nuove copie alla cache, è necessario che le vecchie copie siano scadute. Pertanto, le proprietà di esecuzione del report devono essere configurate per includere le impostazioni di scadenza della cache. Le impostazioni di scadenza devono essere coerenti con la pianificazione della sottoscrizione definita dall'utente. Se, ad esempio, si crea una sottoscrizione che deve essere eseguita ogni notte, anche la cache deve scadere ogni notte prima dell'ora di esecuzione della sottoscrizione. Se le proprietà di esecuzione non prevedono l'ora di scadenza, i recapiti più recenti vengono ignorati. Per ulteriori informazioni sull'impostazione delle proprietà, vedere Impostazione delle proprietà di esecuzione dei report. Per ulteriori informazioni sull'utilizzo delle sottoscrizioni guidate dai dati, vedere Sottoscrizioni guidate dai dati.

Condizioni che determinano la scadenza della cache

Un report memorizzato nella cache può venire invalidato a causa della modifica degli elementi seguenti: definizione del report, parametri del report, credenziali dell'origine dei dati oppure opzioni di esecuzione del report. Se si elimina un report memorizzato nella cache, anche la copia del report presente nella cache viene eliminata.

Se per qualsiasi motivo non è possibile eseguire il rendering del report da un'istanza memorizzata nella cache (ad esempio se i valori dei parametri specificati da un utente sono diversi da quelli utilizzati per creare il report memorizzato nella cache) il report viene eseguito nuovamente dal server di report.

Vedere anche

Attività

Procedura: Impostazione delle opzioni di elaborazione (modalità di integrazione con SharePoint)
Procedura: Precaricamento della cache (Gestione report)
Procedura: Precaricamento nella cache (Management Studio)

Concetti

Snapshot dei report

Altre risorse

Gestione dell'elaborazione dei report
Pianificazione di report e sottoscrizioni

Guida in linea e informazioni

Assistenza su SQL Server 2005