SSRS自动刷新(AutoRefresh)仅部分适用于特定客户端

时间:2017-05-28 22:48:46

标签: sql-server reporting-services

我们多年来已成功在各种客户端上使用SSRS自动刷新(SQL Server 2008R2),从未遇到任何问题。各种操作系统(Windows XP,7和10)上的Chrome和IE的各种组合都很好。我们刚刚在电视屏幕上部署了一个以全屏模式运行的新报告,它似乎总体上令人耳目一新。 Globals!ExecutionTime准确显示,但报表的Tablix中的新行(源数据中的INSERT)在手动刷新报表之前不会显示。更奇怪的是,源数据的UPDATE似乎通过自动刷新过程。这个问题似乎只发生在这些特定的客户端上。

我们已设置报告历史记录以帮助监控此问题,并且按预期工作。事实上,它突出了不一致性,在屏幕自动刷新之前运行的快照中捕获了更新的信息。

报告执行日志正好记录了我们希望看到的执行情况。数据只是没有进入屏幕。

报告的处理选项是:

  • 始终使用最新数据
  • 运行此报告
  • 不要缓存此报告的临时副本 任何建议都非常感谢: - )

1 个答案:

答案 0 :(得分:1)

我们最终解决了它。事实证明问题并不完全如上所述。这似乎是由于几个级联参数的不寻常组合,以及快速变化的基础数据集。会发生什么,是:

  1. 级联参数后面的SQL将在autorefresh上执行,以填充每个参数的默认值。
  2. 在此期间或之后不久,源数据会发生变化。
  3. 接下来,最终的数据集SQL将使用现在过时的参数值执行,并带回错误的结果。
  4. 解决方案是从报告(和底层存储过程)中删除五个级联参数中的四个。存储过程最初的目的是广泛使用,这是需要所有参数的原因。事实证明它只是被报告使用,所以幸运的是我们能够简化这个过程。