SSRS 运行 一次有多个查询吗?
Does SSRS run multiple queries at once?
我正在尝试优化在同一个 table 上使用多个存储过程的报告。不幸的是,每个过程都在读取数百万条记录并汇总结果。这是一份非常密集的报告阅读,但每个存储过程都在 SSMS 中非常快速地优化为 运行。
我可以 运行 每个存储过程并在 10 到 20 秒内得到一个结果集。当我将它们全部放入 SSRS 中的一个报告中时,报告超时。
每个存储过程总共有4个参数。所有目标都相同 table,只是以不同的方式聚合数据。这些 table 上的索引与查询内联。它基于时间、用户和我用于 COUNT() DISTINCT 和 NONDISTINCT 的一维。
我认为问题在于 SSRS 是 运行同时在同一个 table 上执行 4 个程序,而不是一个接一个地执行。这是真的?如果是这样,是否有办法确保 SSRS 不会 运行 它们并行?
我唯一的选择是创建已经预聚合的摘要 table。然后 运行 关闭 table 的报告。否则,我想参数嗅探也是可能的。
默认情况下,SSRS 中的数据集是并行执行的。
如果您的所有数据集都引用同一个数据源,那么您可以通过这种方式在单个连接上配置数据集的序列化执行:
- 在报表设计器中打开数据源对话框
- 确保选中使用单一交易复选框
选中该复选框后,使用相同数据源的数据集将不再并行执行。
希望能解决您的问题。
我正在尝试优化在同一个 table 上使用多个存储过程的报告。不幸的是,每个过程都在读取数百万条记录并汇总结果。这是一份非常密集的报告阅读,但每个存储过程都在 SSMS 中非常快速地优化为 运行。
我可以 运行 每个存储过程并在 10 到 20 秒内得到一个结果集。当我将它们全部放入 SSRS 中的一个报告中时,报告超时。
每个存储过程总共有4个参数。所有目标都相同 table,只是以不同的方式聚合数据。这些 table 上的索引与查询内联。它基于时间、用户和我用于 COUNT() DISTINCT 和 NONDISTINCT 的一维。
我认为问题在于 SSRS 是 运行同时在同一个 table 上执行 4 个程序,而不是一个接一个地执行。这是真的?如果是这样,是否有办法确保 SSRS 不会 运行 它们并行?
我唯一的选择是创建已经预聚合的摘要 table。然后 运行 关闭 table 的报告。否则,我想参数嗅探也是可能的。
默认情况下,SSRS 中的数据集是并行执行的。
如果您的所有数据集都引用同一个数据源,那么您可以通过这种方式在单个连接上配置数据集的序列化执行:
- 在报表设计器中打开数据源对话框
- 确保选中使用单一交易复选框
选中该复选框后,使用相同数据源的数据集将不再并行执行。
希望能解决您的问题。