我正在尝试解决一个问题,即 SSRS 报告对于当天的初始查询速度很慢。我尝试使用此处描述的解决方案:
……无济于事。我知道这似乎是一个 SSRS 问题,但我不确定是否有其他解决方法可以解决此问题。它使用 Microsoft 的 ServerReport.Render 方法来呈现报告并将其转储为 PDF。
评论中的澄清:
我创建了一个类似博客中的脚本。我在工作日开始前的下班时间运行了该脚本。我还在 PowerShell 中逐行手动运行脚本,这似乎确实缓解了这个问题;然而,这可能只是一个安慰剂,因为分配给这个问题的 QA 再次报告了缓慢。
我手动运行了报告,并且在初始报告查询中遇到了相同程度的缓慢。
我确实有一项任务在每天开始营业之前运行。我使用以下行创建了调度程序:
schtasks /create /tn "SSRS Recycle" /ru UserName /rl highest /np /sc daily
/sd 08/01/2011 /st 02:00 /tr "powershell.exe -noprofile
-executionpolicy RemoteSigned -file c:scriptsSSRSRecycle.ps1"
路径是否区分大小写?我的脚本文件名为 Scripts。另外,路径名中是否需要斜杠?
根据您提供的文章,试一试另一种潜在的解决方法:
在 Reporting Services 服务器上,修改文件的
RecycleTime
值rsreportserver.config
,并将其超时,以便在每天正常工作日开始之前在 RS 的应用程序服务器级别进行“回收” - 就像在任何生产之前一小时左右RS 报告通常会运行。然后设置一个小的虚拟订阅报告,每天同时运行——确保它有足够的时间来完成 RS 应用程序的“回收”。在 RS 应用程序服务器“回收”完成后,每天运行此非生产小型虚拟报告作为第一个和初始报告应确保在运行任何生产报告之前加载 RS 应用程序服务器内容,并且生产报告不应遇到问题。
这样,您的 Reporting Services 应用程序服务器回收操作每天都会按照您在配置文件中设置的值在通常和指定的时间发生,然后在发生之后(为完全完成提供充足的时间)虚拟报告在任何生产报告运行之前运行当天,然后接下来 24 小时的每个后续报告都按预期运行,而无需等待 RS 应用服务器发布“回收”加载操作完成。如果可行,您也可以完全省略 PowerShell 脚本解决方案。