缓存共享数据集 (SSRS)
可以将用于共享数据集的查询结果复制到缓存,以便为多个报表提供一致的数据并且缩短数据集查询的响应时间。 与报表类似,您可以在首次使用时或通过指定一个计划,将共享数据集配置为存入缓存。
一个共享数据集可以包含在多个报表中或作为组件定义的一部分。 通过缓存该共享数据集,可为使用它的所有报表提供一组一致的数据,还可以减少数据集查询对外部数据源的运行次数。
下面的列表提供了何时缓存共享数据集的示例:
查询需要很长的时间运行。
查询采用参数,但在大多数时间,参数组合的数目较小。 每个组合都产生缓存的查询结果。
查询在可预测的时间(日期、星期或月份)运行。
查询作为报表中共享数据集引用的结果运行。 此报表通过电子邮件传递,其中,在很短的时间段中可能会有许多人单击该链接。
下面的列表提供了何时不缓存共享数据集的示例:
查询结果必须总是包含最新的数据。
查询快速运行。
查询很少运行。
查询采用参数,参数组合的数目较大,并且没有组合的情况比其他组合更有可能发生。
共享数据集所基于的数据源具有提示或 Windows 集成凭据。
共享数据集筛选器或查询中包含的表达式具有对“用户”全局集合的引用。
如果用户选择的报表参数值不同于为缓存的结果集指定的默认值,则数据集查询将主动运行。 在这种情况下,缓存的结果不用于该查询。
缓存共享数据集
若要为某一共享数据集启用缓存,您必须对该共享数据集选择缓存选项。 启用缓存后,共享数据集的查询结果将在首次使用时复制到缓存中。 如果该共享数据集具有参数,则参数的每个组合将在缓存中创建一个新条目。
在特定参数组合的查询结果处于缓存中时,为进行处理而启动且包括对使用这些参数值的共享数据集的引用的每个报表都会使用缓存数据。
你可以指定数据在缓存中保留多长时间后过期。 有关详细信息,请参阅使用共享数据集。
预加载缓存
您可以通过创建缓存刷新计划预加载缓存。 使用刷新计划,您可以通过特定于项的计划或共享计划来指定刷新缓存的频率。 为了避免同一项有多个缓存条目,您指定的计划应该允许有足够的时间来对外部数据源执行查询处理。 例如,如果查询需要 20 分钟来运行,则刷新计划应大于 20 分钟。 有关更多信息,请参见 Schedules。
若要为共享数据集创建缓存刷新计划,以下条件适用。
该共享数据集必须支持缓存。
共享数据集所依赖的共享数据源无法使用提示或 Windows 集成凭据。
如果共享数据集具有参数,则必须指定为未标记为只读的每个参数都指定静态默认值。 只读参数始终使用默认值。 若要为参数的多个组合缓存共享数据集,则必须为值的每个组合都创建单独的缓存刷新计划。 参数无法包含对其他数据集的引用。
每个缓存刷新计划都仅与一个共享数据集或报表相关联。
对于共享数据集,您必须具有
ReadPolicy
和UpdatePolicy
权限。
缓存刷新计划同时应用于共享数据集和报表。 有关详细信息,请参阅缓存报表 (SSRS)。
导致缓存过期的条件
以下条件可能导致共享数据集缓存失效。
计划条件到期。 缓存超时或者已到到期时间。
共享计划被删除。
对共享计划进行了更改。 共享计划可被暂停,这也会影响缓存到期时间。
共享数据集的查询定义发生了更改。
共享数据集所依赖的共享数据源的凭据发生了更改。
共享数据集的缓存选项发生了更改。
共享数据集的只读参数的默认值发生了更改。
作为共享数据集定义一部分的筛选器发生了更改。
共享数据集已从报表服务器中删除。 在删除某一共享数据集时,关联的缓存副本和缓存刷新计划也将删除。
更新共享数据集的缓存刷新计划不会影响正在处理的报表。 更新缓存刷新计划仅影响引用共享数据集的报表的将来启动。