Sql server SSRS报告的显示时间比执行时间长所指示的时间长
我有一份关于SSRS2008R2的报告。该报告非常简单,即tablix报告;没有子报告或类似的东西,甚至没有任何分类计数。用户希望报表“干净”,以便在将其导出到Excel时可以轻松地对其进行操作。此报表的查询是一个接受三个参数的存储过程 在开发过程中,它的运行时间约为30秒或更短。根据选择的参数,存储过程的完成时间少于此时间。(客户端号,年份和月份。)现在,它已经在生产服务器上运行了几个星期。客户端已经为一组特定的参数运行了它,大约需要30分钟才能完成!我已经完成了通常的调试。SP获取这些参数大约需要9秒钟。我读过,但不是这样。我已经检查了ReportServer.dbo.ExecutionLog3视图中的值。它们显示如下结果:Sql server SSRS报告的显示时间比执行时间长所指示的时间长,sql-server,reporting-services,ssrs-2008,Sql Server,Reporting Services,Ssrs 2008,我有一份关于SSRS2008R2的报告。该报告非常简单,即tablix报告;没有子报告或类似的东西,甚至没有任何分类计数。用户希望报表“干净”,以便在将其导出到Excel时可以轻松地对其进行操作。此报表的查询是一个接受三个参数的存储过程 在开发过程中,它的运行时间约为30秒或更短。根据选择的参数,存储过程的完成时间少于此时间。(客户端号,年份和月份。)现在,它已经在生产服务器上运行了几个星期。客户端已经为一组特定的参数运行了它,大约需要30分钟才能完成!我已经完成了通常的调试。SP获取这些参数大
TimeStart: 2013-08-07 08:36:45.173
TimeEnd: 2013-08-07 08:37:08.943
TimeDataRetrieval: 11598
TimeProcessing: 3408
TimeRendering: 8171
所有这些似乎都表明报告在大约23秒内完成并呈现。但报告在网页上显示大约需要30分钟!现在,这组特定的参数返回大约20000条记录。而且没有分页功能,因为用户在将工作表导出到Excel时希望将所有内容都放在一个工作表上。但为了看看会发生什么,我尝试在每100条记录之后引入一些分页。当我这样做时,报告在30秒内完成。(但现在Excel工作簿中有200多个工作表。)
有人能告诉我为什么要花这么长时间来展示吗?根据执行日志,这不是数据检索,不是处理,也不是渲染。那么它能做什么呢
谢谢,
斯科特
编辑:我忘了提到我还进入了报告的“处理选项”,并更改了报告超时设置。它被设置为使用系统默认值(1800秒或30分钟)。现在设置为“将报表处理限制在以下秒数”2700(或45分钟)。客户抱怨的原因是,当他试图将报表导出到Excel时,他遇到了“rsExecutionNotFound”错误,这可能是由于报表会话超时所致。报告仍在30分钟内运行,我仍然收到rsExecutionNotFound错误。因此,我正在尝试解决根本问题。我找到了解决方案。当我使用报表向导生成报表时,它将tablix放在列表中。(这使得它可以为tablix生成更多自定义的标题,如中所述。)显然,如果列表/tablix不定期分页,那么在IE8+中显示报告将花费很长时间。(这表明微软卓越支持部门说慢是SSRS 2008的一个缺陷。)不管怎样,删除列表并只放置一个没有自定义分组标题的tablix就成功了。报告在大约30秒或更短的时间内正确呈现。我找到了分辨率。当我使用报表向导生成报表时,它将tablix放在列表中。(这使得它可以为tablix生成更多自定义的标题,如中所述。)显然,如果列表/tablix不定期分页,那么在IE8+中显示报告将花费很长时间。(这表明微软卓越支持部门说慢是SSRS 2008的一个缺陷。)不管怎样,删除列表并只放置一个没有自定义分组标题的tablix就成功了。报告在大约30秒或更短的时间内正确呈现。我遇到了类似的问题 我的报告通过存储过程从SQL2008中提取数据 在SSMS中运行存储过程将在大约8秒钟内返回所有记录,但尝试运行报告将导致在30分钟后必须在VS2008上结束任务,而不会返回任何结果 我重构了sp,删除了一个公共表表达式,并用一个临时表替换它,报告在30秒内呈现 我们的SQL server运行非常热—内存在10Gb时完全耗尽(我无法控制),因此使用临时表(写入TempDB)似乎节省了足够的资源来呈现报告 希望这有帮助 干杯
迈克我遇到了类似的问题 我的报告通过存储过程从SQL2008中提取数据 在SSMS中运行存储过程将在大约8秒钟内返回所有记录,但尝试运行报告将导致在30分钟后必须在VS2008上结束任务,而不会返回任何结果 我重构了sp,删除了一个公共表表达式,并用一个临时表替换它,报告在30秒内呈现 我们的SQL server运行非常热—内存在10Gb时完全耗尽(我无法控制),因此使用临时表(写入TempDB)似乎节省了足够的资源来呈现报告 希望这有帮助 干杯
Mike您使用的是哪种浏览器?我们在IE中出现超时错误,但在Chrome中没有收到完全相同的报告。我一直在IE9中运行它。但我刚刚试过Chrome。在Chrome中,“处理”指示器(旋转的绿色圆圈)在大约30秒后消失,但报告根本不显示。但是,如果我将报告导出到excel,则导出将按预期工作。你认为这是一个浏览器问题吗?可能是的,尽管在我们的案例中,报告会在Chrome中在20秒内呈现,在IE9中超时。这仅适用于那些特定参数?非常奇怪。这些特殊的参数生成了一个超过20000条记录的记录集。报告通常要小得多。我最初的想法是这是一个渲染问题(因此添加了分页符),但是SSRS执行日志说它大约在8秒内渲染。所以我被难住了。还有一条评论。。。该报告没有在Chrome中呈现,这一事实具有重大意义