【问题标题】:Why is my SSRS report showing old data?为什么我的 SSRS 报告显示旧数据?
【发布时间】:2013-08-13 13:12:17
【问题描述】:

尽管我已禁用所有缓存(我知道),但我有一份实时报告以某种方式显示缓存数据。当我在 BIDS 查询编辑器中运行查询时,它会显示当前数据。但是在 BIDS 预览和实际部署的报告中,它仍然显示过时的数据。

我尝试在报告网站的报告属性中切换报告缓存,然后关闭,然后我进入 IIS HTTP 标头属性并将内容设置为“立即过期”。由于与报告定义一起存储的 .data 文件(我已经删除/刷新了几次),我之前在 BIDS 预览窗口中看到过这个问题,但我从未见过实时报告发生这种情况。

我还缺少其他缓存选项吗?

编辑:该报告还有一个用户选择的参数,这使这更加令人困惑,因为我的印象是即使启用了缓存,参数也会导致 SSRS 使用最新数据。

【问题讨论】:

  • IE 也会缓存数据。尝试 alt-refresh 或其他浏览器。

标签: reporting-services reportingservices-2005


【解决方案1】:

在 SSRS 的开发模式下,我通常会删除 report_name.rdl.DATA 文件。那就是保留上次运行的数据。

运行了几次才发现这是我更改源数据的问题,并且报告看起来像上次运行。

编辑:注意不要删除您的 .rdl 报告文件(它是您要删除以刷新结果集的“report.rdl.data”文件)。

【讨论】:

  • 你的意思是report.rdl.DATA文件还是.rdl文件?
  • Steam,尝试删除 report.rdl.DATA 文件。下一次运行将使用 report.rdl.DATA 文件中的任何内容。有时退出 SSRS 应用程序也会有所帮助。
  • 谢谢。但我从未在项目文件夹的任何地方找到任何 .DATA 文件。这正常吗?
  • 数据文件与您的报告定义存储在同一文件夹中。
【解决方案2】:

旧帖子,但我仍然遇到这个问题,并找到了一篇关于如何在外部工具下放置选项以使其更容易的文章。

  1. 转到工具 > 外部工具...
  2. 添加具有以下设置的新工具:
    • 标题:清除报表数据缓存
    • 命令:"%WinDir%\System32\cmd.exe"
    • 参数:/C DEL /S /Q "$(SolutionDir)\*.rdl.data"
    • 检查选项:使用输出窗口并在退出时关闭

现在,当您想删除报表数据缓存时,只需转到工具 > 清除报表数据缓存

全文在这里:http://jasonfaulkner.com/ClearDataCacheBIS.aspx

【讨论】:

  • 我为此得到了太多的代表。杰森·福克纳 (Jason Faulkner) 是应得的。
【解决方案3】:

在 Visual Studio 2017 中,单击相关报告的“预览”选项卡。

在图标工具栏上有一个刷新图标,当您单击它时,它将从您的数据库中提取最新数据:

【讨论】:

    【解决方案4】:

    这些选项都不适合我 - 然后我在数据源属性中勾选了“处理查询时使用单个事务”,预览开始使用最新数据运行。

    【讨论】:

      【解决方案5】:

      我发现在 SSRS 2010 中使用 VS 时,预览模式只会显示旧数据。如果我去数据集查询并点击刷新,那么新数据会正常下来,然后预览会显示新数据。这很烦人,但阅读它我知道部署的报告会自行刷新。我无法证明这个理论,因为我无权查看我部署的报告,这更烦人。无论如何,我从各种帖子中获得了一些提示,并将报告属性中的 AutoRefresh 属性从 0 更改为 1。然后,当我进入预览模式时,报告更新正常,但每 1 秒更新一次。现在我了解了该属性的工作原理并将其设置为 1000000。这意味着当您第一次进入预览时它会刷新一次,然后它会在 1000000 秒内再次刷新,此时我退出预览模式并愉快地构建报告更多的。我真的不知道这将如何影响已部署的报告,但我想大致相同。也许其他有权访问他们部署的报告的人可以提供建议。

      【讨论】:

      • 虽然我仍然不知道是什么原因导致了这个问题,但是当我在部署的报告中寻找发生这种情况的正当理由时,你的方法起到了作用。谢谢老哥!
      【解决方案6】:

      我发现使用 SSRS,从报告中删除报告的数据源,然后重新创建它可以删除所有缓存的数据在 BIDS 环境中。但是,我从未在已部署的报告中看到过这样的行为。

      您可以尝试从 SSRS 服务器 中删除共享数据源,然后重新部署它。也许它会导致类似的刷新。但是,如果部署的报表是在生产环境中,我不一定会跳到这样的极端。

      【讨论】:

        【解决方案7】:

        这可能对寻求旧数据显示甚至报告构建器显示当前数据的人有所帮助。

        我在现有的实时报告中也面临此类问题。我在数据库端更新了数据。但改变没有奏效。我刷新了几次。仍然显示旧数据。后来我发现我单击了报告的“查看报告历史记录”[如果您将鼠标悬停在报告名称上,然后单击向下箭头,则会显示此选项]。 在报告历史页面的左侧,我转到“处理选项”,在那里我可以看到两个可用的单选选项。

        1. 始终使用最新数据生成此报告
        2. 从报表快照呈现此报表

        不幸的是,我的报告选择了 Point2。每天早上 7 点安排一次。因此,早上 7 点之后,如果我们进行任何更改,我们无法立即看到。我们必须等待第二天的快照。 但是,我们可以通过选择 Point1 来改变这一点,这将为您带来最新的数据。

        希望这对维护 SSRS 报告的人有所帮助。

        问候, 维斯瓦诉。

        【讨论】:

          【解决方案8】:

          始终使用最新数据生成此报告 不要缓存此报告的临时副本

          1. 仔细检查是否通过 ReportManager 在处理选项下选择了上述选项。
          2. 检查您的数据集是否正在查询当前数据。
          3. 刷新报告。

          这很奇怪。

          【讨论】:

          • 确实很奇怪——我已经尝试了以上所有方法,但没有任何效果。
          【解决方案9】:

          很多人忘记了这样做,请始终确保您的 .rds 文件是最新的。在 SSRS 中,与您的报告一起重新构建和重新部署“共享数据源”和“共享数据集”。

          1. 选择“共享数据源”和“共享数据集”(.rds) 文件。
          2. 单击鼠标右键,“构建”。
          3. 单击鼠标右键,“部署”。

          现在从主机重新运行报告。

          【讨论】:

            【解决方案10】:

            我刚刚手动上传到报表服务器的报表遇到了这个问题,其 XML 显然具有正确的数据源和数据集信息。该项目的设置是共享数据源和共享数据集。我通过在报表服务器上调整报表的数据源和数据集设置解决了这个问题。单击报告旁边的省略号 (...),选择管理,然后分别选择左侧面板上的数据源和共享数据集进行调整。出于某种原因,它只是没有在手动上传时“获取”数据更新。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2014-11-19
              相关资源
              最近更新 更多