1

我有一个需要创建的报告存在严重的性能问题。我需要在我们的数据库中创建所有课程的目录。这是简化的数据模型:

组织单元 --> 包含多个课程 --> 其中包含多个活动;每个活动包含以下内容:

  • 附加链接列表
  • 先决条件活动列表
  • 附加属性-值对列表(编目信息)
  • 每种资源类型所需资源类型和数量的列表
  • 培训目标清单

我希望创建一个报告,将所有内容分组,看起来像这样:在此处输入图像描述

在创建将所有表连接在一起的简单查询后,我得到了近 600 万行,因为由于将活动表与所有 1 多关系表连接以获取附加的链接资源等而发生了不同的笛卡尔积......

我想通过几种方式避免这种情况:

  1. 子报告将列出每个活动的不同项目列表。
  2. 为上述列表中的每一个创建一个 XML 字段,并在我的报告中使用 VB 对其进行解析
  3. 在报表中使用多个数据集,并以某种方式使用查找函数来列出不同的值。

到目前为止的结果:

  1. 子报告在性能方面被证明是非常低效的,它比原来的 600 万行查询多 50%。
  2. xml 字段在 DB 方面非常有效,但使用 VB 格式化数据会很麻烦,如果可能的话,我非常希望避免这种情况,
  3. 我似乎找不到正确的方法来使用 lookupSet 来获取附件名称列表及其旁边的链接。

所以我的问题是:

  1. 在处理大量数据和 SSRS 2008-r2 时显示具有大量一对多关系的实体时,最佳实践是什么?
  2. 有没有一种方法可以使用查找功能连接数据并以某种方式创建“嵌套表”来列出一对多关系
  3. 任何其他建议将不胜感激。
4

1 回答 1

0

你能创建一个向下钻取报告吗?这看起来是一个不错的选择,可以列出活动并总结课程,然后可钻取详细信息或类似内容。

或者,如果数据更改不重要,您可以缓存您的报告?

600 万条记录对于 ssrs 报告来说已经很多了!

于 2013-04-18T08:29:05.047 回答