【发布时间】:2019-03-15 15:47:53
【问题描述】:
我们有一个报告解决方案,它利用 SSRS 中的“转到报告”钻取操作在报告之间移动。这使报告解决方案可以像包含多个选项卡和视图的仪表板一样运行,并且允许我们的用户直观地与他们的数据交互。
但是,我们注意到,在单击不同的报告一段时间(大约 20 个报告)后,报告解决方案变得越来越慢。曾经在 3 秒内返回的报告现在需要 10 秒才能返回。如果我们在报告解决方案中点击更长的时间,相同的报告可能需要 20 秒才能返回。
我感觉它与 SSRS 存储我们单击的每个报告的所有参数有关。我们每次传递大约 15 个参数,为了让浏览器上的后退按钮起作用,SSRS 需要在内存中存储每个以前报告的参数。这意味着我们点击的报告越多,浏览器需要恢复的数据就越多。如果我们关闭浏览器并重新打开报告解决方案,该报告会按预期再次快速返回。
有没有办法告诉 SSRS 停止持有这么多数据?我们可以将最大可能的“支持”数量设置为 2 或 3?还是我的问题完全是其他问题?我当然不知所措!谢谢!
编辑 - 一位同事提到“_viewstate”可能与此问题有关。也许这有助于某人回答这个问题?
编辑 2 - 到目前为止,我们最好的解决方案是使用“转到 URL”操作。这会刷新页面并消除似乎使系统陷入困境的历史堆栈...
【问题讨论】:
-
这无疑是一种使用 SSRS 的复杂方式。您是否在 SSRS 上使用过事件查看器并运行性能日志?这是一个独立的服务器,还是一个负载平衡的集群?您是否在日志中收到诸如“状态验证异常失败”之类的消息(我不记得我见过的具体错误,但它很相似)?
-
我没有尝试使用事件查看器(老实说,我什至不知道如何使用)。我相信这是一个独立的服务器,但我不确定。但是一旦你提到它,我确实记得在 ReportServer 日志中看到了错误。似乎每次加载报告时,我都会得到一行新代码,如下所示: processing!ReportServer_0-5!1eb4!03/21/2019-17:52:08:: e ERROR: Throwing Microsoft.ReportingServices.ReportProcessing .ReportProcessingException: , Microsoft.ReportingServices.ReportProcessing.ReportProcessingException: 位置 26 的字段没有数据。;
标签: reporting-services reporting ssrs-2012 dashboard