如何提高SSRS报告生成的数据库负载

时间:2014-04-29 14:37:51

标签: performance reporting-services ssrs-2008

我想知道是否有可能减少SSRS报告产生的数据库负载。 我有一份由多个子报告组成的SSRS报告。他们每个人至少有一个数据库查询。

  1. 他们中的许多人查询相同的数据,因为大多数子报告都有一种充满动态数据的模板标题。
  2. 根据查询是否返回任何数据,显示一些子报告。因此,一旦查询数据以确定是否显示报告。然后报告本身查询相同的数据以在表格中显示它
  3. 一般来说,我可以告诉我需要一种机制来将查询的数据库数据从父报告传递到子报告。父报告将查询一些数据,它将遍历数据集,并且对于每个数据集,它将显示将当前数据集作为参数传递的子报告。

    我找不到传递数据集(数据行)的机制。这就是我通过传递一种数据集ID来显示子报告的原因。子报告本身再次查询相同的数据,按传递的数据集ID进行过滤,并仅显示相关的数据集。这会导致数据库承受巨大负担。

    提前谢谢!

2 个答案:

答案 0 :(得分:1)

您描述的设计是相当标准的,我不希望它会导致“DB上的巨大负载”。我希望运行10个过滤子报告的数据库负载比运行一个覆盖相同10个项目的报告多出约10-20%。

我会在“数据集ID”列上添加一个索引,以使该过滤器更有效。

答案 1 :(得分:0)

根据子报表的复杂性,使用查找功能可能是一种可接受的更快的解决方案。以前关于隐藏没有数据的行或子报告的评论也适用于此。