我看到一些奇怪的行为,我无法理解。我有一个包含大量参数的报告,其中没有一个是级联的。设置了少数参数以允许多选,并且从使用存储过程的数据集中检索可用/默认值。
当我加载报表时,每个数据集都会执行,这是我所期望的。但是,如果我更改参数值(例如date参数的日期),则会再次执行每个数据集。这是为什么?
复杂情况是什么我每个参数有两个副本(Param1,Param1_Internal,Param2,Param2_Internal等)。对于我在报告中使用以确定用户是否选择了“全部选择”的公式,我设置了这样的设置。对于多选参数。因此,例如,我将从数据集1中设置Param1和Param1_Internal,从数据集2设置Param2和Param2_Internal。当我更改不相关的参数时,数据集1将执行两次,然后数据集2执行两次。
任何建议:
我目前在SQL Server 2016上。
由于
修改
所以,我找到了部分问题的答案。在某些情况下,我使用表达式作为调用我的存储过程的数据集中的参数值。看起来,当您执行此操作时,SSRS将在每次更改任何参数值时执行该数据集。我仍然希望有人会就如何在我有2个参数使用默认/可用值的情况下运行一次数据集的建议。
答案 0 :(得分:1)
如果数据集结果位于SSRS服务器上存储的共享数据集中,则可以对其进行缓存。这样,第一次运行它将执行查询,然后第二次将从缓存中拉出:
https://docs.microsoft.com/en-us/sql/reporting-services/work-with-shared-datasets-web-portal#caching
但请谨慎使用,好像参数的支持值经常更改一样,您的报告结果会不一致。
答案 1 :(得分:1)