我有一个在 TOAD 中运行非常快的 Oracle 查询。此外,在 Visual Studio 中,设置一个报告,一切都运行得非常快。但是在部署到 SSRS 站点后,使用相同的数据源,报表需要很长时间才能加载。
有谁知道为什么,或者如何解决这个问题?
最佳答案
在 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,请检查兼容性 View 设置——关闭 SSRS 应该会更快。同样在 IE 中,您可能想要切换加速图形的设置。在我们的组织中,一些用户在打开它时看到更好的性能,而一些用户在关闭它时看到更好的性能。
关于performance - SSRS 报告在 Visual Studio 中速度快但在浏览器中速度慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40598881/