我已经安装了一个带有一些报告的服务器(2008 R2)。但是我有一些性能上的问题。
今天对服务器的第一次调用(以报表界面为例)非常慢(充其量大概是30-45秒)。
然后报告生成是“快速的”(1-2秒)。
对服务器的下一次调用总是禁食到第二天。我的印象是它在内存中加载了很多东西。但是什么需要30-45秒才能加载到内存中?如何只加载一次?
服务器已经足够好了(四核,8 8GB的内存,目前还没有达到它的容量)。
有什么问题吗?我该如何解决这个问题?
这些报告在一周内只会发布4-5次,所以如果我不能改变这一点,它们总是会很慢。由于它对客户是可用的,我只是不能让他们理解这一点(而且报告是通过网站调用的,所以我冒着超时的风险)。
非常感谢
发布于 2012-06-26 22:25:31
这似乎是一个SSRS问题。你的报告没有错。
在长时间不活动之后,第一次访问SSRS需要更多的时间来加载,这是“正常的”。该问题是由SSRS的工作方式以及SSRS在特定时间段后定期重新启动应用程序域引起的。应用程序域重新启动后,在第一次请求SSRS时,它需要加载所有设置,这需要相当长的时间。
This博客秀是解决这种情况的办法
发布于 2016-04-26 04:34:53
下面是我为解决这个问题而编写的powershell脚本。它被设置为每隔1:00am运行一次的任务:
Stop-Service "SQL Server Reporting Services (MSSQLSERVER)"
Start-Service "SQL Server Reporting Services (MSSQLSERVER)"
$wc = New-Object system.net.webClient
$cred = [System.Net.CredentialCache]::DefaultNetworkCredentials
$wc.Credentials = $cred
$src = $wc.DownloadString("http://localhost/Reports/Pages/Report.aspx?ItemPath=***NAME OF HOME PAGE***")发布于 2012-06-26 20:14:56
我能想到的最好的解决方案是通过windows服务中的windows批处理命令向报告的http页面发出一个'curl‘命令。每天早上在用户进来之前,这会使页面运行起来。
不再有权访问代码(job是在一段时间之前),但这个问题展示了如何使用curl:
https://stackoverflow.com/questions/11207049
复制相似问题