2

的ReportViewer版本:14SSRS的ReportViewer慢渲染报告与HTML5渲染

我有一个显示我的球队的分组,像这样的所有报告报告数据视图:

ReportGroup1 
    Report1 
    Report2 
    Report3 

ReportGroup2 
    Report4 
    Report5 
    Report6 
... 

当我运行此报告在浏览器(Chrome 60)中,速度非常慢,需要花费5分钟以上才能运行。该报告中返回了近1000行,其中包括每个报告名称旁边的几个图标以及新窗口中每个报告的链接。尽管浏览器速度很慢,但SQL查询是即时的,并且报表也可以使用Visual Studio中的预览功能快速呈现。

我使用开发人员工具监视了性能,看起来新的HTML5添加引发了一个瓶颈,特别是Html5Renderer.js中的Resize100HeightElements()Resize100WidthElements()函数。如果我的理解是正确的,它会根据父母的高度动态调整每一行的大小,这对于大约1000个对象来说需要相当长的时间。

一种解决方法是在InteractiveSize设定为小尺寸(例如8.5 in),这限制给定页上返回的行号(我们不得不将其设置为0,打印在一页上的结果)。不过,我们不希望将其分解成页面。

有谁知道加速长页面的方法或提高HTML5渲染器性能的方法吗?在不久的将来,升级到SSRS 2016是值得的。提前致谢。

编辑:即使报表中的图像大小属性设置为“剪辑”而非“适合比例”,报表不包含任何图像时性能得到显着改善。我们如何保持图像不受HTML5渲染器的影响?

+2

很好的研究到这个问题。你能看到图标添加到所有东西的开销吗?单个页面上的几千个图标会严重降低加载时​​间,也会从我的经验中获益。图标是否已经过优化和缩放? – Daniel

+0

图标很小,似乎很好地缩放,请求中返回的图标<10个。根据总结,上述两个函数调用占用了执行时间的99.4%,但很难确定这是由缩放图标引起的。我试图部署没有图标的报告,它*方式*更快。我再次运行了DevTools性能监视器,并确认性能得到显着改善。感谢您的建议! – McGlothlin

+0

SSRS中的图标在我的经验中一直是一个麻烦的领域。在质量或性能方面,缩放比例很少。 – Daniel

回答

1

我找到了满足我们需求的解决方案。

图像属性影像尺寸设定原始大小是我发现呈现较大的页面时不会造成显著放缓的唯一选择。我必须这样做,所有可见图像;图像大小对隐藏图像没有影响。当我使用Chrome开发人员工具重新评估性能时,可以看到渲染时间和脚本执行时间显着缩短。该报告现在运行在< 5秒钟之内,距离它近5分钟。

我怀疑图像大小以前设置为剪辑,因为根据this页面,SSRS不像任何文本框中的文本那样为单元格中的图像提供任何排列选项。我可以通过在包含图像的每个单元格中插入一个矩形,然后将每个图像移动到其单元格中的矩形内部来解决此问题。然后我分别调整填充属性,直到每个图像居中。