Report nella cache (SSRS)

Nel server di report è possibile memorizzare 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'orario non sono quelle correnti e se il report non è uno snapshot, significa che il report è stato recuperato dalla cache.

che consente di ridurre il tempo necessario per recuperare i report di grandi dimensioni o che vengono aperti di frequente. Se il server viene riavviato, tutte le istanze memorizzate nella cache vengono ripristinate quando il servizio Web ReportServer viene riportato online.

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 altre informazioni, vedere Impostare proprietà di elaborazione dei report.

Nota

Reporting Services archivia i file temporanei 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 altre informazioni sulle modalità di memorizzazione nella cache di file temporanei a uso interno, vedere Database del server di report (modalità nativa SSRS).

Istanze della 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 in qualsiasi momento. 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.

Aggiornare 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 modulo di pianificazione non è disponibile a una data di scadenza della cache, il server di report esegue un report attivo. Questa azione continua fino a quando non è possibile riprendere le operazioni pianificate. Le operazioni pianificate possono essere riprese quando si estende la pianificazione o si avvia il servizio di pianificazione.

Precaricare la 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:

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

  2. 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 meta del recapito. Il server usa un'estensione di 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. 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 altre informazioni sui piani di aggiornamento della cache, vedere Pianificazioni. Per altre informazioni sull'impostazione delle proprietà, vedere Impostare proprietà di elaborazione dei report. Per altre informazioni sull'uso 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 non è possibile eseguire il rendering di un report da un'istanza memorizzata nella cache per qualsiasi motivo, il server di report esegue nuovamente il report. Questa azione garantisce che il report venga generato con i valori dei parametri corretti e aggiornati.