2012-04-27 155 views
0

永远需要我注意到,当我运行一个包含什么,但执行时间栏的一份报告,该报告花费很长的时间加载每当我有从SQL大的嵌入式数据集。为什么是这样?该报告甚至没有查找数据集中的任何数据,那么它在做什么?加载时间显然与数据集中的数据量成正比。有没有更好的方法来创建数据集? SQL Report Builder看起来很不稳定,因为我的一些数据集包含数百万条记录。SQL报表生成器与空报告

+0

为什么你有数据集那里,如果你不使用它? – Lamak 2012-04-27 19:52:09

+0

我刚开始建设的报告,所以我添加数据集,我是计划使用。当它只是带有标题和执行时间字段的默认报告时,我运行了它。当我看到它需要多长时间时,我很好奇。 – 2012-05-03 12:39:11

回答

3

报告生成查询涉及三个阶段:

  • 数据检索
  • 处理
  • 渲染

这些阶段顺序运行,所以在数据检索阶段Reporting Services不知道如何将数据会被使用报告,因此它将执行报告中所有数据集的查询。处理阶段然后获取数据集查询的结果并将报表结构(如表和分组)应用于数据。

这就是为什么你的报告被执行,即使该报告只包含了执行时间字段中的数据集查询,并且也是为什么以确保数据集只返回报表所需的数据是很重要的。最小化数据检索的数量对于良好的报表性能非常重要。

+0

哎。这将做到这一点。 – 2012-05-03 12:44:21

0

你确定你没有在报表上的任何表矩阵? Tablix的有一个数据集属性,如果您运行与该属性设置为dataSet1例如报告,SSRS将执行对数据集1

+0

这只是带有标题和执行时间字段的默认报告。除此之外,它完全是空的。 – 2012-05-03 12:39:53