SSRS是否一次运行多个查询?

时间:2015-12-17 20:23:38

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

我正在尝试优化在同一个表上使用多个存储过程的报表。不幸的是,每个程序都在读取数百万条记录并汇总结果。这是一个非常强烈的报告读取,但每个存储过程都经过优化,可以在SSMS中快速运行。

我可以运行每个存储过程并在10到20秒内获得结果集。当我将它们全部放入SSRS中的一个报告中时,报告会超时。

每个存储过程总共有4个参数。全部定位到同一个表,只是以不同的方式聚合数据。这些表的索引与查询内联。它基于时间,用户和我用于COUNT()DISTINCT和NONDISTINCT的一个维度。

我认为问题在于SSRS在同一个表上同时运行4个程序而不是一个接一个地运行。这是真的?如果是这样,无论如何都要确保SSRS不会并行运行它们?

我唯一的选择是创建已经预先聚合的汇总表。然后只需从该表中运行报告。否则,我猜param嗅探也是可能的。

1 个答案:

答案 0 :(得分:6)

默认情况下,SSRS中的数据集是并行执行的。

如果您的所有数据集都引用相同的数据源,那么您可以通过以下方式配置单个连接上数据集的序列化执行:

  • 在报表设计器中打开数据源对话框
  • 确保选中使用单一交易复选框

选中该复选框后,不再并行执行使用相同数据源的数据集。

我希望能解决你的问题。