0

我们在将报告下载为 pdf 时遇到问题。服务器:如上所述的 SSRS R2。

报告特定于一个 ID。因此图表将显示为一个 ID。我使用子报表方法将多个 ID 发送到报表,并在一个报表中获取不同页面的图表。当我发送大约 38 个 ID(38 页报告)时,下载到 PDF 大约需要 2 分钟,并且比例是成比例的(我们发送的最大 ID 大约是 90 个 ID,大约需要 5 分钟,从用户的角度来看是不可接受的)。报告能够在几秒钟内呈现。所以,我们没有来自 sql DB 的问题。我们已经彻底增强了 sql 以达到最佳性能。Reportviewer 能够在几秒钟内显示报告。但是,这个问题非常具体到将该报告下载到 pdf。即使是excel下载也非常快,几秒钟就可以下载。

我在谷歌上进行了大量搜索并尝试了很多东西,比如禁用服务器上的防病毒软件,从子报告和主报告中删除所有全局参数,还尝试保持启用缓存。最后,我们在服务器上有大内存、多核 CPU 和足够的磁盘空间。因为,从 ssrs 下载 pdf 是 CPU 密集型的,而 excel 是 RAM 密集型的,我们已经研究过了。

提前感谢您的回复。这是我关于堆栈溢出的第一篇文章。这个网站对我来说是很多次的救星。

4

1 回答 1

0

我会怀疑两件事之一。要么是您尝试渲染如此多的子报表,并且由于某种原因这会减慢 PDF 渲染器的速度。尝试禁用某些子报表或将其限制为仅呈现一次(如果它们位于某种重复对象中)。要么这样做,要么重新制作报告,以便它不需要调用子报告。

另一种可能性是图表非常大或非常复杂。我听说过 PDF 渲染器需要很长时间才能生成大尺寸图表的故事,而将它们缩小可以提高性能。如果是这种情况,我不确定你应该如何处理。那要看你的情况了。

我会尝试禁用报告的某些部分并查看它如何影响渲染时间,以找出究竟是什么原因。

于 2013-10-04T04:54:18.217 回答