Reporty v mezipaměti (SSRS)

Server sestav může uložit kopii zpracované sestavy do mezipaměti a vrátit ji, když uživatel sestavu otevře. Pro uživatele je jediným důkazem, že zpráva je uložená kopie, datum a čas spuštění zprávy. Pokud datum nebo čas není aktuální a zpráva není snapshot, byla zpráva získána z cache.

Ukládání do mezipaměti může zkrátit dobu potřebnou k načtení sestavy, pokud je sestava velká nebo často přístupná. Pokud je server restartován, všechny uložené instance jsou obnoveny, když se webová služba Report Server opět spustí.

Ukládání do mezipaměti je technika vylepšení výkonu. Obsah cache je nestabilní a může se měnit při přidávání, nahrazování nebo odebírání zpráv. Pokud potřebujete předvídatelnější strategii cachování, měli byste vytvořit snapshot reportu. Další informace naleznete v tématu Nastavení vlastností zpracování sestavy.

Note

Reporting Services ukládá dočasné soubory do databáze pro podporu uživatelských relací a zpracování reportů. Tyto soubory jsou uloženy do mezipaměti pro interní použití a pro podporu konzistentního sledování během jedné relace prohlížeče. Pro více informací o tom, jak jsou interní dočasné soubory ukládány do mezipaměti, viz Report Server Database (SSRS Native Mode).

Instance uložené v mezipaměti

Uložená instance zprávy je založena na meziformátu zprávy. Server sestav obvykle ukládá do mezipaměti jednu instanci sestavy na základě názvu sestavy. Pokud však report může obsahovat různá data na základě parametrů dotazu, může být v libovolném okamžiku uloženo více verzí zprávy. Například předpokládejme, že máte parametrizovanou zprávu, která přijímá kód regionu jako hodnotu parametru. Pokud čtyři různí uživatelé zadají čtyři unikátní regionální kódy, vytvoří se čtyři uložené kopie.

První uživatel, který spustí report s unikátním regionálním kódem, vytvoří cacheovanou zprávu obsahující data pro daný region. Následující uživatelé, kteří požádají o report se stejným regionálním kódem, obdrží uloženou kopii.

Ne všechny reporty lze uložit do mezipaměti. Pokud zpráva obsahuje uživatelsky závislá data, žádá uživatele o přihlašovací údaje nebo používá Windows Authentication, nelze ji uložit do mezipaměti.

Obnovit mezipaměť

Cacheovaná zpráva je nahrazena novější verzí, když uživatel vybere report poté, co předchozí uložená kopie vypršela. Reporty nakonfigurované tak, aby běžely jako cacheované instance, jsou z cache pravidelně odstraňovány podle nastavení expirace. Můžete nastavit vypršení zprávy během minut nebo v plánovaném čase, podle požadavku na okamžitost dat. Nemůžete přímo smazat reporty z cache, pokud nepoužíváte SOAP API.

Pro konfiguraci expirace cache můžete použít sdílený rozvrh nebo harmonogram specifický pro report. Pokud použijete sdílený rozvrh a rozvrh je později pozastaven, cache nevyprší, dokud je rozvrh nefunkční. Pokud je sdílený rozvrh později smazán, kopie nastavení rozvrhu je uložena jako rozvrh specifický pro report.

Pokud harmonogram vyprší, nebo pokud je plánovací engine nedostupný v době expirace cache, server zpráv spustí živou zprávu. Tato akce pokračuje, dokud nebude možné obnovit plánovaný provoz. Plánované operace lze obnovit, když buď prodloužíte rozvrh, nebo spustíte službu plánování.

Předem načíst mezipaměť

Pro zlepšení výkonu serveru můžete přednačíst cache. Cache můžete předčítat kolekcí parametrizovaných instancí reportů dvěma způsoby:

  1. Vytvořte plán obnovy cache. Když vytvoříte plán obnovy, můžete specifikovat harmonogram pro jednu zprávu nebo sdílený harmonogram.

  2. Vytvořte si datově řízené předplatné, které využívá Null Delivery Provider. Když v předplatném určíte Null Delivery Provider jako způsob doručení, server reportů cílí na databázi serveru reportů jako cílovou stanici doručení. Server používá specializované renderovací rozšíření nazývané null rendering extension. Na rozdíl od jiných rozšíření doručení nemá Null Delivery Provider nastavení doručení, která byste mohli nastavit pomocí definice předplatného.

Ukládání reportu do mezipaměti je obzvlášť užitečné, pokud chcete cacheovat více instancí parametrizované zprávy, kde se různé hodnoty parametrů používají k vytvoření různých instancí reportů. Ve výpisu můžete specifikovat pouze parametry založené na dotazech.

Když určujete rozvrh nebo vytváříte datově řízené předplatné, plánujete, jak často budou reporty doručovány do cache. Aby mohly být nové kopie doručeny do cache, musí být staré kopie expirované. Proto musí být vlastnosti Execution reportu nakonfigurovány tak, aby zahrnovaly nastavení expirace cache. Nastavení expirace musí být v souladu s plánem předplatného, který definujete. Například pokud si vytvoříte předplatné, které běží každou noc, cache by měla také vypršet každou noc před vypršením předplatného. Pokud vlastnosti Execution nezahrnují doby expirace, novější doručení se ignorují. Pro více informací o plánech obnovy cache viz Harmonogramy. Pro více informací o nastavení vlastností viz Nastavit vlastnosti zpracování zpráv. Pro více informací o využívání datově řízených předplatných viz Data-driven subscriptions.

Podmínky, které způsobují vypršení platnosti mezipaměti

Cacheovaná zpráva je neplatná v reakci na následující události: je upravena definice zprávy, parametry zprávy, změna přihlašovacích údajů u zdroje dat nebo změna možností vykonávání zprávy. Pokud smažete report, který je uložený v cache, smaže se i verze v cache.

Pokud nelze report z cacheované instance z jakéhokoliv důvodu vykreslit, report server ho znovu spustí. Tato akce zajišťuje, že reporta je generována se správnými a aktualizovanými hodnotami parametrů.