1

我的情况是这样的——我正在使用 SSRS 创建一个“级联”报告集。顶级报告从捕获我们的部署/发布活动的表中提取所有数据。该数据包括执行发布的资产、该资产所属的组织、发布的计划和实际开始和结束时间(及其组成部署)等等等等,以及在报告 I按时间窗口(财政年度,然后是季度,然后是月份)聚合数据。因此,在顶层,用户会看到一份报告,该报告显示我们执行了多少部署和发布,预计需要多长时间,以及在过去 12 个月中实际需要多长时间,再次按财政年度分组,然后是季度,然后是月份。

现在,用户想要查看的下一级详细信息是针对给定月份的。当他或她单击链接以运行该特定子报告时,他们现在会获得按组织分组的特定月份的相同信息(部署数量、发布数量、计划和实际持续时间等)。

这是我的困境 - 初始报告需要很长时间才能呈现。我想创建快照报告以减少此渲染时间,但我的子报告使用顶级报告中的月份作为参数。换句话说,当我点击子报告的链接时,SSRS 中的 Action 设置说使用我点击的月份作为参数来生成子报告,并且子报告中的查询过滤掉该参数具有以下查询条件:

AND FiscalQuarter IN (@Quarter)

因此,报告工作正常,但我想知道 - 是否有某种方法可以将所有季度的所有数据放入快照报告中的子报告中,然后只生成该快照但过滤掉我从顶级报告作为参数传递的季度值?

4

2 回答 2

3

是的,您可以通过为所有值创建子报告的快照。并且子报表上定义的参数应该是数据集过滤器而不是查询参数。

现在,当您将参数从主报表传递到子报表时,它将在子报表快照上相应地过滤它,而无需执行昂贵的 sql

于 2013-06-19T23:36:29.670 回答
1

唉,报告服务不能提供您所需要的。缓存报表将根据参数值的不同组合创建报表的缓存版本,缓存数据集的情况类似。

你似乎有大约两个选择:

  1. 使用缓存数据集,让子报表使用缓存数据集,但仅在检索数据后使用参数过滤数据(例如在 tablix 中)
  2. 采用更面向数据库的类似缓存或性能增强策略,例如查询的索引视图
于 2013-06-10T21:20:03.953 回答