1

我注意到,当我运行一个只包含执行时间字段的报表时,只要我有一个来自 sql 的大型嵌入式数据集,报表就会花费很长时间加载。为什么是这样?该报告甚至没有从数据集中寻找任何数据,那么它在做什么呢?加载时间显然与数据集中的数据量成正比。有没有更好的方法来创建数据集?SQL Report Builder 看起来很不可用,因为我的一些数据集包含数百万条记录。

4

2 回答 2

4

报告生成涉及三个阶段:

  • 数据检索
  • 加工
  • 渲染

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

这就是为什么即使报表只包含执行时间字段,报表也会执行数据集查询的原因,也是确保数据集只返回报表所需数据的重要原因。最大限度地减少数据检索量对于良好的报告性能很重要。

于 2012-05-02T22:01:27.753 回答
1

您确定您的报告中没有任何 tablix 吗?tablix 有一个 dataset 属性,例如,如果您将该属性设置为 dataset1 运行报表,SSRS 将在 dataset1 上执行查询

于 2012-04-30T10:02:51.480 回答