Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL Reporting services:第一次调用非常慢_Sql Server_Reporting Services_Ssrs 2008 - Fatal编程技术网

Sql server SQL Reporting services:第一次调用非常慢

Sql server SQL Reporting services:第一次调用非常慢,sql-server,reporting-services,ssrs-2008,Sql Server,Reporting Services,Ssrs 2008,我安装了一个SQL Reporting server(2008 R2),其中包含一些报告。但我有一些表现问题 一天中对服务器的第一次调用(通过示例进入报告界面)非常慢(最多30-45秒) 然后,报告生成“快速”(1-2秒) 下一次对服务器的调用始终是最快的,直到第二天。我的印象是它在记忆中承载了很多东西。但在内存中加载什么东西需要30-45秒???如何只加载一次 服务器已经足够好了(四核,8GB的ram,目前还没有接近其容量) 有什么问题?我如何解决这个问题 这些报告一周只发布4-5次,所以如果

我安装了一个SQL Reporting server(2008 R2),其中包含一些报告。但我有一些表现问题

一天中对服务器的第一次调用(通过示例进入报告界面)非常慢(最多30-45秒)

然后,报告生成“快速”(1-2秒)

下一次对服务器的调用始终是最快的,直到第二天。我的印象是它在记忆中承载了很多东西。但在内存中加载什么东西需要30-45秒???如何只加载一次

服务器已经足够好了(四核,8GB的ram,目前还没有接近其容量)

有什么问题?我如何解决这个问题

这些报告一周只发布4-5次,所以如果我不能改变的话,它们的发布速度总是很慢。而且,由于它是为客户提供的,我无法让他们理解这一点(而且报告是通过网站调用的,所以我冒着超时的风险)


非常感谢

我能想到的最佳解决方案是在windows服务中使用via windows批处理命令向报告的http页面发出“curl”命令。每天早上,在用户进来之前,这都会出现在页面上

不再具有代码访问权限(作业刚刚开始),但此问题显示了如何使用curl:


它可能与SQL Server完全无关。尝试查看是否不是代码符号吊销列表检查问题,请参阅它似乎是SSRS问题。你的报告没有问题

在长时间不活动之后,SSRS在您第一次访问它时需要更多的时间来加载,这是“正常”的。这个问题是由SSRS的工作方式和SSRS在特定时间段后定期重新启动应用程序域引起的。在应用程序域重新启动后,第一次请求SSRS时,它需要加载所有设置,这需要相当长的时间


博客秀是解决这种情况的一种方法

正如迭戈所说,SSRS有一些问题。第一次呼叫速度较慢,与服务器配置有关。我建议您在rsreportserver.config中添加以下配置(如果您不知道,请在C:\Program Files\Microsoft SQL Server\MSRS10.MSSQLSERVER\Reporting Services\ReportServer\中找到)

如果要增加SSRS使用的最大内存:(即7GB)

7000000
如果您想改进第一次通话,可以设置(分钟)

4320
实际上,SSRS有一个重置(回收)时间,在这个时间内,它会清理缓冲区。默认情况下,它设置为720分钟(12小时),这就是为什么如果你每天早上打开一个报告,它实际上加载速度非常慢。
根据需要,您可以设置更高的回收时间(2-3天)。我不建议延长时间,因为缓冲区将被填满,而您将只得到空白页,因此您必须手动重新启动Reporting Services。

以下是我为解决此问题而编写的powershell脚本。将其设置为每凌晨1:00运行一次的任务:

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***")

我将页面上的主查询和下拉控件转换为从存储过程加载,加载过程中会有5秒的不同。避免使用任何内联查询。

如果执行计划在一段时间内没有被使用,它将被踢出。我尝试将这两个注册表放在一起,但没有帮助,今天早上我进行了测试,同样的问题。我正在尝试这个解决方案,我明天会看看它是否有效:)今天早上我真的很高兴,因为它有效!你知道为什么SSRS需要定期重启应用程序域吗?@Diego此链接不再有效。这项工作是否被重新发布在任何地方?这个博客是最好的解决方案,但他的脚本需要修改。与其点击Folder.aspx,不如点击一个实际的页面,请参见下面我的回复:@SChalice-我没有发现我必须点击一个实际的项目。原稿如广告所示。
<RecycleTime>4320</RecycleTime>
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***")