怎么ssr都这么慢_性能 - 快速查询在SSR中运行缓慢

性能 - 快速查询在SSR中运行缓慢

我有一个SSRS报告,它调用存储过程。 如果我直接从查询窗口运行存储过程,它将在2秒内返回。 但是,从2005 SSRS报告运行的同一查询最多需要5分钟才能完成。 这不仅仅发生在第一次运行,它每次都会发生。 另外,我在其他环境中没有看到同样的问题。

关于为什么SSRS报告在这个特定环境中运行如此缓慢的任何想法?

17个解决方案

95 votes

感谢您提供的建议。 我们找到了一个解决方案,结果确实与参数有关。 由于“参数嗅探”,SQL Server在从SSRS报告执行时产生了一个复杂的执行计划。 解决方法是在存储过程内部声明变量,并将传入参数分配给变量。 然后查询使用变量而不是参数。 这导致查询始终执行,无论是从SQL Server管理器还是通过SSRS报告调用。

user275554 answered 2019-06-16T16:34:30Z

13 votes

将其添加到proc的末尾:option(recompile)

这将使报表的运行速度几乎与存储过程一样快

Brian Smedley answered 2019-06-16T16:35:04Z

12 votes

我将补充说,我对非存储过程查询有同样的问题 - 只是一个普通的select语句。 为了解决这个问题,我在数据集SQL语句中声明了一个变量,并将其设置为等于SSRS参数。

多么烦人的解决方法! 不过,谢谢大家让我接近答案!

JHFB answered 2019-06-16T16:35:37Z

11 votes

我有同样的问题,这是我对问题的描述

“我创建了一个可以生成2200行的存储过程并且将在近2秒内执行但是在从SSRS 2008调用存储过程并运行报告后它实际上从未运行过,最终我必须杀死BIDS(商业智能开发工作室) 来自任务经理“。

我尝试了什么:我尝试从reportuser登录运行SP,但SP也正常运行该用户,我检查了Profiler但没有任何结果。

解:

实际上问题在于,即使SP正在生成结果,但SSRS引擎需要时间来读取这些行并将其渲染回来。所以我在SP中添加了WITH RECOMPILE选项并运行报告..这是奇迹发生时我的问题得到了解决。

Redroidmator answered 2019-06-16T16:36:29Z

5 votes

我有相同的情况发生..非常基本的报告,SP(只需要1个参数)需要5秒才能恢复10K记录,但报告需要6分钟才能运行。 根据分析器和RS ExecutionLogStorage表,该报告花费了所有时间在查询上。 Brian S.的评论让我得到了解决方案。我只是在SP中的AS语句之前添加WITH RECOMPILE,现在报告时间几乎与SP执行时间相匹配。

Rod C answered 2019-06-16T16:36:55Z

5 votes

我只是在Tablix属性中取消选择“在每个页面上重复标题列”。

Antony answered 2019-06-16T16:37:20Z

5 votes

如果您的存储过程使用链接服务器或openquery,它们可能会自行运行,但需要很长时间才能在SSRS中呈现。 一些一般性建议:

通过使用不同的数据源而不是使用链接服务器来检索数据,直接从存储数据的服务器检索数据。

在执行报告之前将数据从远程服务器加载到本地表,使报告查询保持简单。

使用表变量首先从远程服务器检索数据,然后与本地表连接,而不是直接返回与链接服务器的连接。

我看到问题已经得到解答,我只是添加了这个以防有人遇到同样的问题。

bubbassauro answered 2019-06-16T16:38:15Z

4 votes

我在报告检索32000行时报告html输出有问题。 查询运行速度很快,但输出到Web浏览器的速度非常慢。 在我的情况下,我必须激活“交互式寻呼”,以允许用户查看第一页,并能够生成Excel文件。 此解决方案的优点是第一页显示速度快,用户可以生成导出到Excel或PDF,缺点是用户只能滚动当前页面。 如果用户想要查看更多内容,他必须使用网格上方的导航按钮。 在我的情况下,用户接受了这种行为,因为导出到Excel更重要。

要激活“交互式分页”,必须单击报告窗格中的空闲区域,然后在“属性”窗格的报告级别更改属性“InteractiveSize”\“Height”。 将此属性设置为不同于0.在我的情况下,我设置为8.5英寸。 还要确保在Tablix级别取消选中“尽可能保持在一个页面上”属性(右键单击Tablix,然后单击“Tablix属性”,再选择“常规”\“分页符选项”)。

Alexey Sukhanov answered 2019-06-16T16:38:51Z

4 votes

我遇到了类似的问题,我的存储过程从Management Studio快速执行,但从SSRS执行速度非常慢。 经过长时间的努力,我通过物理删除存储过程并重新创建它来解决了这个问题。 我不确定它背后的逻辑,但我认为这是因为存储过程中使用的表结构的变化。

jay answered 2019-06-16T16:39:16Z

3 votes

我面临同样的问题。 对我来说,只是取消选中该选项:

Tablix属性=> 分页选项=> 尽可能在一页上保持在一起

SSRS报告。 它试图将所有记录放在同一页面上而不是创建许多页面。

Joanne answered 2019-06-16T16:39:57Z

3 votes

除了参数嗅探问题,我发现SSRS在客户端处理时通常比(在我的情况下)Crystal报告更慢。 当SSRS引擎有很多行进行本地过滤或聚合时,它似乎不具备能力。 当然,这些是结果集设计问题,这些问题可以经常得到解决(尽管并非总是如果需要细节才能进行深入研究),但是更成熟的......成熟的...报告引擎更加宽容。

Steve answered 2019-06-16T16:40:23Z

3 votes

就我而言,我只需要断开连接并连接SSMS。 我分析了查询,执行的持续时间显示为1分钟,即使查询本身在2秒内运行。 重新启动连接并再次运行,这次持续时间显示正确的执行时间。

Ranjan answered 2019-06-16T16:40:49Z

1 votes

您可以执行的一些操作,而不执行实际报告,只需从报告服务的数据选项卡中运行sproc。 还需要时间吗?另一个选择是使用SQL事件探查器并确定进出数据库系统的内容。

您可以做的另一件事就是测试它,以便重新创建一个没有任何参数的简单报告。 运行报告,看看它是否有所作为。 可能是您的RS报告已损坏或格式错误,可能导致渲染速度非常慢。

JonH answered 2019-06-16T16:41:23Z

1 votes

遇到同样的问题,并通过为共享数据集提供默认参数并在报告服务器中更新该数据集来修复它。

Solomon answered 2019-06-16T16:41:48Z

1 votes

你在SSRS表中使用“分组依据”吗?

我有一个报告,其中3个按字段分组,我注意到尽管有轻微的查询,报告仍然非常缓慢,甚至我甚至无法在搜索字段中拨打值。

比我删除分组,现在报告在几秒钟内上升,一切都在瞬间完成。

Riddle-Master answered 2019-06-16T16:42:29Z

1 votes

在我的情况下,我只能通过从底部删除[& TotalPages]内置字段来解决它。 从几分钟到不到一秒的时间。

我无法确定的奇怪的事情是对总页数的计算有影响。

我正在使用SSRS 2012。

ByteArtisan answered 2019-06-16T16:43:08Z

0 votes

在我们的例子中,不需要代码。

请联系我们的帮助台:“清除Internet设置将解决此问题。”

也许这意味着“清除缓存”。

user7788038 answered 2019-06-16T16:43:47Z

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值