1

我正在开发 ssrs 中的报告,以便在公司内的公共场所显示。该报告显示部门活动的最新数据,因此设置为每 30 秒左右刷新一次。

我遇到的问题是每隔几个小时,报告就会抛出一个错误(rsErrorReadingNextDataRow)和(rsProcessingAborted)。我所要做的就是在浏览器中点击刷新(在互联网浏览器中呈现),然后它会重新运行并愉快地绘制图表一段时间。

查看报表服务器执行日志后,这些错误似乎与处理时间的惊人峰值相吻合。平均而言,每次报告刷新时,处理时间为 400ms~800ms,但当它达到峰值时,它会达到 ~90000ms(是的,五个零),然后抛出此错误。

作为 SSRS 的新手,我不确定从哪里开始寻找根本原因。

谁能给我指点我可以从哪里开始找出导致处理时间像这样飞速增长的原因?数据检索稳定在~5000ms,时间渲染稳定在200ms左右。只是处理出了问题。

报告和数据的一些背景:

数据非常简单。它基于从过去 7 周中提取交易的视图。数量或记录,因此每周潮起潮落〜8000条记录。在 SSMS 中运行 select * from View 时,查询大约需要 5 秒才能运行。解决此处理问题后,我将努力加快速度。

没有使用任何参数,尽管视图确实使用 getdate() 来确定要从基表中显示哪些记录。

不使用存储过程。

报告本身由单个 tablix 中的 6 个窗格组成,其中没有一个必须绘制超过几十个标记('除了一个是美国各州的地图)。

该报告确实有一个可能相关的功能,但我不确定如何。报表定义根据内置执行时间变量的 mod 3 过滤数据集,旋转报表以显示“本月”、“本周”或“今天”活动。还有一个关于执行时间的附加 mod 3,它可以旋转窗格的可见性。结果是,每 30 秒,一个具有不同图表组合的报告会显示在一个轮换的时间范围内。

不知道这是否是一个原因,但它是报告中唯一让它看起来很奇怪的元素。关于报告的其他所有内容实际上都相当简单/简单。

虽然我很想识别和消除尖峰,但即使是自动刷新错误或超时刷新(或类似的东西)的机制也可以解决问题。我需要能够在早上启动报告并让它全天无人操作,无需任何人工干预,在工作时间内每 30 秒刷新一次。

4

1 回答 1

0

只是回顾一下评论:

  • 可以将网页推送到框架中,然后将 javascript 添加到主页以定期刷新框架。它不会解决根本问题,但它可能会有所帮助。
  • 可能值得查看 Sql Server 中的性能监控工具 - 这可能是数据库问题(临时表已填满等)
  • 您注意到添加 with (nolock) 似乎有助于定位问题。
于 2013-09-11T15:00:33.693 回答