Cacherapporter (SSRS)

En rapportserver kan cachelagrat en kopia av en bearbetad rapport och returnera kopian när en användare öppnar rapporten. För en användare är det enda beviset som indikerar att rapporten är en cachad kopia datumet och tiden då rapporten publicerades. Om datumet eller tiden inte är aktuell och rapporten inte är en ögonblicksbild, hämtades rapporten från cachen.

Cachelagring kan förkorta den tid som krävs för att hämta en rapport om rapporten är stor eller används ofta. Om servern startas om återställs alla cachade instanser när Report Server-webbtjänsten kommer online igen.

Cachelagring är en teknik för prestandaförbättring. Innehållet i cachen är flyktigt och kan ändras när rapporter läggs till, ersätts eller tas bort. Om du behöver en mer förutsägbar strategi för cachelagring bör du skapa en rapportögonblicksbild. Mer information finns i Ange egenskaper för rapportbearbetning.

Anmärkning

Reporting Services lagrar temporära filer i en databas för att stödja användarsessioner och rapporthantering. Dessa filer cachas för intern användning och för att stödja en konsekvent visningsupplevelse under en enda webbläsarsession. Mer information om hur temporära filer för internt bruk cachelagras finns i Report Server Database (SSRS Native Mode).

Cachade instanser

En cachad instans av en rapport baseras på rapportens mellanliggande format. Rapportservern cachelagrar vanligtvis en instans av en rapport baserat på rapportens namn. Om en rapport däremot kan innehålla olika data baserat på frågeparametrar kan flera versioner av rapporten cachelagras samtidigt. Till exempel, anta att du har en parameteriserad rapport som tar en regionkod som parametervärde. Om fyra olika användare anger fyra unika regionkoder skapas fyra cachade kopior.

Den första användaren som kör rapporten med en unik regionkod skapar en cachad rapport som innehåller data för den regionen. Efterföljande användare som begär rapporten med samma regionkod får den cachade kopian.

Alla rapporter kan inte caches. Om en rapport innehåller användarberoende data, ber användare om inloggningsuppgifter eller använder Windows-autentisering kan den inte cachelagras.

Uppdatera cachen

En cachad rapport ersätts med en nyare version när en användare väljer rapporten efter att den tidigare cachade kopian gått ut. Rapporter som är konfigurerade att köras som cachade instanser tas bort från cachen med jämna mellanrum baserat på utgångsinställningar. Du kan ställa in rapportens utgångsdatum inom några minuter eller vid en schemalagd tid, beroende på datans krav på omedelbarhet. Du kan inte ta bort rapporter direkt från cachen om du inte använder SOAP API.

För att konfigurera cache-utgång kan du använda ett delat schema eller ett rapportspecifikt schema. Om du använder ett delat schema och schemat pausas senare, går cachen inte ut medan schemat är inaktivt. Om det delade schemat senare raderas sparas en kopia av schemainställningarna som ett rapportspecifikt schema.

Om ett schema går ut, eller om schemaläggningsmotorn inte är tillgänglig vid ett cache-utgångsdatum, kör rapportservern en live-rapport. Denna åtgärd fortsätter tills planerade operationer kan återupptas. De schemalagda operationerna kan återupptas när du antingen förlänger schemat eller startar schemaläggningstjänsten.

Läs in cacheminnet i förväg

För att förbättra serverprestandan kan du förladda cachen. Du kan förladda cachen med en samling parameteriserade rapportinstanser på två sätt:

  1. Skapa en cacheuppdateringsplan. När du skapar en uppdateringsplan kan du ange ett schema för en enskild rapport eller ange ett delat schema.

  2. Skapa ett datadrivet abonnemang som använder Null Delivery Provider. När du anger Null Delivery Provider som leveransmetod i prenumerationen, riktar rapportservern in sig på rapportserverns databas som leveransdestination. Servern använder en specialiserad renderingsextension som kallas null rendering extension. Till skillnad från andra leveranstillägg har Null Delivery Provider inga leveransinställningar som du kan konfigurera via en prenumerationsdefinition.

Att cache en rapport är särskilt användbart om du vill cacha flera instanser av en parameteriserad rapport där olika parametervärden används för att skapa olika rapportinstanser. Du kan bara ange frågebaserade parametrar i rapporten.

När du anger ett schema eller när du skapar den datadrivna prenumerationen, schemalägger du hur ofta rapporterna levereras till cachen. För att nya kopior ska kunna levereras till cachen måste de gamla kopiorna vara utgångna. Därför måste rapportens exekveringsegenskaper konfigureras för att inkludera cachens utgångsdatum. Utgångsdatumet måste vara i linje med det prenumerationsschema du definierar. Till exempel, om du skapar en prenumeration som körs varje natt, bör cachen också gå ut varje natt innan prenumerationens körtid. Om Exekveringsegenskaperna inte inkluderar utgångstider räknas nyare leveranser bort. För mer information om cacheuppdateringsplaner, se Scheman. För mer information om inställningsegenskaper, se Setrapporthanteringsegenskaper. För mer information om användning av datadrivna prenumerationer, se Data-driven prenumeration.

Villkor som orsakar cacheförfallotid

En cachad rapport ogiltigförklaras som svar på följande händelser: rapportdefinitionen ändras, rapportparametrar ändras, datakällors legitimation ändras eller rapportexekveringsalternativ ändras. Om du raderar en rapport som lagras i cachen, raderas även den cachade versionen.

Om en rapport av någon anledning inte kan renderas från en cachad instans, kör rapportservern rapporten igen. Denna åtgärd säkerställer att rapporten genereras med korrekta och uppdaterade parametervärden.