【问题标题】:SSRS Parameters - Values from a query (parallelism)SSRS 参数 - 来自查询的值(并行性)
【发布时间】:2018-05-08 00:56:40
【问题描述】:

我的 SSRS 报告只有一个数据源 - SSAS 表格多维数据集。

报告有 15 个参数,它们从查询(数据集)中获取值。

当用户打开报表时,会填充每个参数,但会序列化每个查询执行(由 Profiler/执行日志确认)。每次执行最多需要 70 毫秒。因此,仅打开一份报告就需要 1,000-1,200 毫秒。

有没有办法并行填充报表参数?

注意

  • 报表运行时(用户点击“查看报表”),所有图表数据集都是并行执行的,所以SSAS/SSRS绝对可以并行执行查询。
  • “处理查询时使用单个事务” 未选中数据源的复选框。

SSRS/SSAS 版本:2016,最新的 SP/CU、Ent & Dev

更新: 如果我将数据源更改为 SQL Server,问题仍然存在,SSRS 未并行执行查询(用于报告参数)。

【问题讨论】:

  • 参数是级联的还是相互独立的?
  • @Harry,参数是独立的
  • 如果它们是独立的,为什么不使用一个数据集来返回所有参数值,而不是 15 个(每个一个)。
  • @Larnu,许多参数是多值的,来自不同的对象。即使将单个数据集用于这 15 个参数,该数据集也将执行 15 次,一个接一个,而不是并行执行 - 在 Profiler 中检查
  • 我不确定你的意思是什么,但这是错误的。返回多个值的单个语句不会运行多次;它会运行一次。如果您有一个数据集返回许多值,这些值分配给不同的参数,SSRS 将运行该数据集一次;每个参数不是一次。

标签: sql-server reporting-services parameters parallel-processing


【解决方案1】:

您能否再次检查数据集是否是并行执行的?默认情况下,报表中的数据集是并行执行的,无论它们是从单个数据源还是多个数据源生成的。在您的场景中,由于数据集使用相同的数据源,并且未选中数据源的“处理查询时使用单个事务”选项,因此数据集应并行执行。

【讨论】:

  • 如果我不确定数据集不是并行执行的,我不会问这个问题 - 请再次阅读问题和详细信息,也尝试重新生成并发布结果这里。这与报表图表的数据集执行无关——它们的执行是并行的——我提到过,它与参数有关——它们的行为不同。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多