【问题标题】:SQL Report Builder takes forever with empty reportSQL Report Builder 需要永远使用空报告
【发布时间】:2012-04-27 19:29:01
【问题描述】:

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

【问题讨论】:

  • 如果你不使用数据集,为什么还要在那里?
  • 我刚开始构建报告,所以我正在添加我计划使用的数据集。当它只是带有标题和执行时间字段的默认报告时,我运行了它。当我看到它需要多长时间时,我很好奇。

标签: sql sql-server-2008 reporting-services


【解决方案1】:

报告生成涉及三个阶段:

  • 数据检索
  • 处理
  • 渲染

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 它只是带有标题和执行时间字段的默认报告。除此之外,它完全是空的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-04
    • 1970-01-01
    相关资源
    最近更新 更多