【问题标题】:Multiple tables referencing the same dataset多个表引用同一个数据集
【发布时间】:2014-11-18 03:25:58
【问题描述】:

我有一个调用存储过程的共享数据集。我有多个表,它们使用相同的数据集,并且表本身有过滤器,只包含某些记录。

是为每个表调用数据集还是只调用一次?

【问题讨论】:

  • 当您说共享数据集时,您是指部署在报表服务器上的实际共享数据集,还是由多个报表项共享的报表内部的数据集?

标签: reporting-services ssrs-2008-r2


【解决方案1】:

最简单的做法是运行报告并查看数据库中发生的情况。在此示例中,我使用 SQL Server Profiler 查看数据库活动。我已经使用通过 Visual Studio 运行的简单报告进行了测试。

数据集:

报告包含两个表、不同的过滤器、相同的数据集:

运行报告:

检查 SQL Server Profiler 中记录的内容:

您可以看到数据集查询只运行了一次。所以在这种情况下,我们可以说多次引用数据集不会导致它被多次加载。

对于 SSRS,说在所有情况下总是都是如此总是有风险的,但根据这个例子,这似乎是一个不错的选择。

【讨论】:

  • 您可以放心地说,在所有情况下都始终都是如此 - 只要元素存在于报表中。这并不是说当数据集只执行一次时性能会更好——你很有可能数据库并行处理几个小的调用比 SSRS 传输一个更大的数据集并对其进行多次过滤要快.
猜你喜欢
  • 1970-01-01
  • 2015-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-23
  • 1970-01-01
相关资源
最近更新 更多