Memorizzazione dei report nella cache (SSRS)Caching Reports (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.A report server can cache a copy of a processed report and return that copy when a user opens the 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.To a user, the only evidence available to indicate the report is a cached copy is the date and time that the report ran. 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.If the date or time is not current and the report is not a snapshot, the report was retrieved from cache.

che consente di ridurre il tempo necessario per recuperare i report di grandi dimensioni o che vengono aperti di frequente.Caching can shorten the time required to retrieve a report if the report is large or accessed frequently. Se il server viene riavviato, tutte le istanze memorizzate nella cache vengono ripristinate quando il servizio Web ReportServer viene riportato online.If the server is rebooted, all cached instances are reinstated when the Report Server Web service comes back online.

La memorizzazione nella cache è una tecnica per il miglioramento delle prestazioniCaching is a performance-enhancement technique. Il contenuto della cache è volatile e può cambiare in seguito all'aggiunta, alla sostituzione e alla rimozione di report.The contents of the cache are volatile and can change as reports are added, replaced, or removed. Se si desidera una strategia di memorizzazione nella cache più prevedibile, è consigliabile creare uno snapshot del report.If you require a more predictable caching strategy, you should create a report snapshot. Per altre informazioni, vedere Impostare proprietà di elaborazione dei report.For more information, see Set Report Processing Properties.

Nota

Reporting ServicesReporting Services archivia i file temporanei in un database per supportare le sessioni utente e l'elaborazione dei report. stores temporary files in a database to support user sessions and report processing. 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.These files are cached for internal use and to support a consistent viewing experience during a single browser session. Per altre informazioni sulle modalità di memorizzazione nella cache di file temporanei a uso interno, vedere Database del server di report (modalità nativa SSRS).For more information about how internal-use temporary files are cached, see Report Server Database (SSRS Native Mode).

Istanze memorizzate nella cacheCached Instances

Un'istanza di un report memorizzata nella cache si basa sul formato temporaneo di un report.A cached instance of a report is based on the intermediate format of a report. Nella cache del server di report viene in genere memorizzata una sola istanza di un report basata sul nome del report.The report server generally caches one instance of a report based on the report name. Se tuttavia un report può contenere dati diversi in base ai parametri delle query, potrebbero risultare memorizzate nella cache più versioni del report contemporaneamente.However, if a report can contain different data based on query parameters, multiple versions of the report may be cached at any given time. Si supponga, ad esempio, di disporre di un report con parametri che accetta un indicativo di paese come valore di parametro.For example, suppose you have a parameterized report that takes a region code as a parameter value. Se quattro utenti diversi specificano quattro indicativi di paese diversi, nella cache vengono create quattro copie del report.If four different users specify four unique region codes, four cached copies are created.

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.The first user who runs the report with a unique region code creates a cached report that contains data for that region. Per gli utenti che successivamente richiederanno il report con lo stesso indicativo di paese, verrà utilizzata la copia memorizzata nella cache.Subsequent users who request the report using the same region code get the cached copy.

Non tutti i report possono essere memorizzati nella cache.Not all reports can be cached. 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.If a report includes user-dependent data, prompts users for credentials, or uses Windows Authentication, it cannot be cached.

Aggiornamento della cacheRefreshing the 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.A cached report is replaced with a newer version when a user selects the report after the previously cached copy has expired. 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.Reports that are configured to run as cached instances are removed from the cache at regular intervals based on expiration settings. È possibile impostare la scadenza di un report in minuti o a un'ora pianificata, come determinato dal requisito di attualità dei dati.You can set a report's expiration in minutes or at a scheduled time, as determined by the data's immediacy requirement. Non è possibile eliminare direttamente i report dalla cache, a meno che non si utilizzi l'API SOAP.You cannot delete reports from the cache directly unless you use the SOAP API.

Per configurare la scadenza della cache, è possibile utilizzare una pianificazione condivisa o una pianificazione specifica del report.To configure cache expiration, you can use a shared schedule or report-specific schedule. Se si utilizza una pianificazione condivisa che in seguito viene sospesa, la cache non scadrà durante l'intervallo di sospensione.If you use a shared schedule and it is subsequently paused, the cache does not expire while the schedule is inoperative. Se una pianificazione condivisa viene eliminata, una copia delle impostazioni della pianificazione verrà salvata come pianificazione specifica del report.If the shared schedule is subsequently deleted, a copy of the schedule settings is saved as a report-specific schedule.

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).If a schedule expires or if the scheduling engine is unavailable at a cache expiration date, the report server runs a live report until scheduled operations can be resumed (by either extending the schedule or starting the scheduling service).

Precaricamento della cachePreloading the Cache

Per ottimizzare le prestazioni del server, è possibile eseguire il precaricamento della cache.To improve server performance, you can preload the cache. È possibile precaricare la cache con una raccolta di istanze del report con parametri in due modi:You can preload the cache with a collection of parameterized report instances in two ways:

  1. Creazione di un piano di aggiornamento della cache.Create a cache refresh plan. Quando si crea un piano di aggiornamento, è possibile specificare una pianificazione per un report singolo o una pianificazione condivisa.When you create a refresh plan, you can specify a schedule for a single report or specify a shared schedule.

  2. Creazione di una sottoscrizione guidata dai dati che utilizza il Provider recapito Null.Create a data-driven subscription that uses the Null Delivery Provider. 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.When you specify the Null Delivery Provider as the method of delivery in the subscription, the report server targets the report server database as the delivery destination and uses a specialized rendering extension called the null rendering extension. 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.In contrast with other delivery extensions, the Null Delivery Provider does not have delivery settings that you can configure through a subscription definition.

    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.Caching a report is especially useful if you want to cache multiple instances of a parameterized report where different parameter values are used to produce different report instances. Si noti che nel report è possibile specificare solo parametri basati su query.Note that you can only specify query-based parameters on the report.

    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.When you specify a schedule or when you create the data-driven subscription, you schedule how often the reports are delivered to the cache. Per recapitare le nuove copie alla cache, è necessario che le vecchie copie siano scadute.In order for new copies to be delivered to the cache, the old copies must have expired. Pertanto, le proprietà di esecuzione del report devono essere configurate per includere le impostazioni di scadenza della cache.Therefore, the Execution properties of the report must be configured to include cache expiration settings. Le impostazioni di scadenza devono essere coerenti con la pianificazione della sottoscrizione definita dall'utente.The expiration setting must be consistent with the subscription schedule that you define. 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.For example, if you create a subscription that runs every night, the cache should also expire every night prior to the subscription's run time. Se le Proprietà di esecuzione non prevedono l'ora di scadenza, i recapiti più recenti vengono ignorati.If the Execution properties do not include expiration times, newer deliveries are disregarded. Per altre informazioni sui piani di aggiornamento della cache, vedere Pianificazioni.For more information about cache refresh plans, see Schedules. Per altre informazioni sull'impostazione delle proprietà, vedere Impostare proprietà di elaborazione dei report.For more information about setting properties, see Set Report Processing Properties. Per altre informazioni sull'uso delle sottoscrizioni guidate dai dati, vedere Sottoscrizioni guidate dai dati.For more information about using data-driven subscriptions, see Data-Driven Subscriptions.

Condizioni che determinano la scadenza della cacheConditions That Cause Cache Expiration

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.A cached report is invalidated in response to the following events: the report definition is modified, report parameters are modified, data source credentials change, or report execution options change. Se si elimina un report memorizzato nella cache, anche la copia del report presente nella cache viene eliminata.If you delete a report that is stored in the cache, the cached version is also deleted.

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.If a report cannot be rendered from a cached instance for any reason (for example, if the parameter values that a user specifies are different from those used to produce the cached report), the report server reruns the report.

Vedere ancheSee Also

Impostare le opzioni di elaborazione (Reporting Services in modalità integrata SharePoint) Set Processing Options (Reporting Services in SharePoint Integrated Mode)
Impostare proprietà di elaborazione dei report Set Report Processing Properties
Concetti relativi a Reporting Services (SSRS) Reporting Services Concepts (SSRS)
Precaricare la cache (Gestione report) Preload the Cache (Report Manager)
Pianificazioni Schedules
Memorizzare nella cache set di dati condivisi (SSRS) Cache Shared Datasets (SSRS)
Opzioni di aggiornamento cache (Gestione report)Cache Refresh Options (Report Manager)