我有一个在TOAD中运行速度非常快的Oracle查询。此外,在Visual Studio中,使用报表进行设置,一切都运行得非常快。但是在部署到SSRS站点后,使用相同的数据源,报告需要很长时间才能加载。
有谁知道为什么或如何解决这个问题?
答案 0 :(得分:0)
在SSRS中,运行报告时记录了三次:数据检索时间,处理时间和渲染时间。除此之外,报告的输出必须通过网络发送到您的浏览器并在那里呈现以供显示。
首先,使用以下查询验证SSRS中的时间是否符合预期:
SELECT
ReportPath,
RequestType,
TimeDataRetrieval,
TimeProcessing,
TimeRendering
FROM
[ReportServer].[dbo].[ExecutionLog2] with (nolock)
WHERE
ReportPath = '/whatever/report'
即使数据检索时间很短,SSRS也可能需要很长时间才能生成报告。例如,向子报告添加大量钻取会增加大量额外输出。确定此问题的最简单方法是将浏览器中生成的报告导出为MHTML。您可能会对输出的大小感到惊讶。这是Visual Studio与浏览器具有非常不同性能的一个领域。
显然,通过慢速网络传输大型报告会增加渲染时间(从用户的角度来看)。在我们的组织中,这种传输可以从额外的半秒增加穿越城镇到额外的20秒穿过大西洋。如果没有工具,这有点难以精确测量,但经验测量应该给你一个足够好的答案。
最后,还有浏览器本身。 Chrome在渲染SSRS报告方面比IE快很多。如果您确实使用IE,请检查兼容性视图设置 - SSRS应该更快关闭。同样在IE中,您可能想要切换加速图形的设置。在我们的组织中,有些用户会看到更好的性能,有些用户会看到更好的性能。