memorizzazione nella cache 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 determinare 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.
La memorizzazione nella cache 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.
La memorizzazione nella cache è 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 memorizzazione nella cache più prevedibile, è consigliabile creare uno snapshot del report. Per ulteriori informazioni, vedere Impostazione delle proprietà di elaborazione 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 relative alla 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 specifica del report. Se si utilizza una pianificazione condivisa che in seguito viene sospesa, la cache non scadrà durante l'intervallo di sospensione. Se una pianificazione condivisa viene eliminata, una copia delle impostazioni della pianificazione verrà 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. È possibile precaricare la cache con una raccolta di istanze del report con parametri in due modi:
Creazione di un piano di aggiornamento della cache. Quando si crea un piano di aggiornamento, è possibile specificare una pianificazione per un report singolo o una pianificazione condivisa.
Creazione di 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. 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.
La memorizzazione nella cache del report è 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.
Quando si specifica una pianificazione o 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 sui piani di aggiornamento della cache, vedere Pianificazione di report, set di dati condivisi e sottoscrizioni. Per ulteriori informazioni sull'impostazione delle proprietà, vedere Impostazione delle proprietà di elaborazione 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