我正在ssrs中开发一份报告,以便在公司内的公共场所展示。该报告显示有关部门活动的最新数据,因此设置为每30秒左右刷新一次。
我遇到的问题是,每隔几个小时,报告就会抛出一个错误(rsErrorReadingNextDataRow)& (rsProcessingAborted)。我所要做的就是在浏览器中点击刷新(在互联网浏览器中渲染),然后快乐地重新运行和绘制一段时间。
在查看报告服务器执行日志之后,看起来这些错误与处理时间中的现象峰值一致。平均而言,每次报告刷新时,处理时间为400ms~800ms,但是当它达到峰值时,它会达到~90000ms(是的,五个零),然后抛出此错误。
对SSRS不熟悉我不知道从哪里开始寻找根本原因。
任何人都可以指点我可以从哪里开始找出导致处理时间的火箭吗?数据检索在~5000ms时稳定,时间渲染在200ms左右稳定。只是处理失败了。
报告和数据的一些背景知识:
数据非常简单。它基于从过去7周开始的交易。数量或记录,因此每周消退和流量约8000条记录。当在SSMS中运行select * from View时,查询大约需要5秒钟才能运行。在解决此处理问题后,我会努力加快速度。
没有使用参数,但视图确实使用getdate()来确定从基表中显示哪些记录。
不使用存储过程。
报告本身由一个Tablix中的6个窗格组成,其中没有一个必须绘制超过几十个标记('cept one是美国各州的地图)。
该报告确实有一个可能相关的功能,但我不确定如何。报表定义根据内置执行时变量的mod 3过滤数据集,将报表旋转以显示“本月”,“本周”或“今天”活动。执行时间还有一个mod 3可以旋转窗格的可见性。结果是每30秒,具有不同图表组合的报告显示在旋转时间范围内。
不知道这是否可能是一个原因,但它是报告中唯一使其远见的元素。关于报告的其他所有内容实际上都相当简单明了。
虽然我很想识别并消除尖峰,但即使是一种自动刷新错误的机制,或者在超时时刷新(或者那种效果)也可以解决问题。我需要能够在早上启动报告,让它在没有人工干预的情况下全天无人值守,在工作时间内每隔30秒刷新一次。
答案 0 :(得分:0)
回顾一下评论: