SSRS性能

SSRS性能

0
投票
4
已解决
8716
浏览
0
投票
2
回答
2690
浏览

ssrs直连Oracle数据库的效率怎么样

Jason0602 回复了问题 • 2015-03-11 10:35
0
投票
1
回答
2820
浏览

SSRS启动慢

梁勇 回复了问题 • 2015-01-14 11:12
条新动态, 点击查看
BIWORK

BIWORK 回答了问题 • 2015-09-07 15:02 • 4 个回复 不感兴趣

如何优化SSRS报表的打开速度?

赞同来自:

优化报表速度可以从这几个方面入手:
1. 减少数据集查询返回到报表的数量,比如返回 10W条和返回 1000 条到报表端的效果是不一样的。从源端查询的数据保存在 Dataset 数据集中,数据集中的数据实际上是保存在报表服务器中的 ReportServer... 显示全部 »
优化报表速度可以从这几个方面入手:
1. 减少数据集查询返回到报表的数量,比如返回 10W条和返回 1000 条到报表端的效果是不一样的。从源端查询的数据保存在 Dataset 数据集中,数据集中的数据实际上是保存在报表服务器中的 ReportServer / ReportServerTemp 其中一个数据库。返回的量越少,IO开销越少,速度越快。

2. 返回到数据集中的数据越大,报表的加载速度就越慢,特别是你放入了大量的KPI计算表达式计算在报表端,这个过程也非常的耗费时间。

所以通常的做法是:
1. 能在 SQL 查询完成的计算就在 SQL 查询端完成,即使这个过程比较长但是总比在报表前端通过页面表达式计算要效率更高一些。

2. 尽量控制和减少数据集的大小,返回量的大小,这样报表前端渲染的就更快一些。

3. 把 ReportServerTemp 数据库调整大一些,包括自动增长,因为大量的基于 Dataset 在报表端的汇总会在这个数据库中做聚合计算。

4. 包括 Group by 这种报表聚合表中不要通过表达式实现,而是直接取数据集中的字段列,宁愿这种计算列现在查询阶段做好。

5. 如果这种查询聚合仍然很慢,建议把这个数据集固化,即创建表先把所有计算好的数据、聚合的数据写到表中,然后这张表直接作为数据集的源,这样减少中间的计算环节。本身数据仓库的处理通常就是每天晚上执行的,完全可以把这部分的处理放到 JOB 中,先把数据计算好,报表直接引用而不是查询再聚合再计算。

6. 认真看看 ReportServer 数据库中的 ExecutionLogN (N 找最大的那个数字),里面有3个时间段分表表示查询、渲染、加载的时间,以及返回的数据量大小和条数。

通过我上面说的几个阶段的优化,你就能明显看到这几个时间段包括数据量条数的大小变化,报表的速度会明显提高。
 
0
投票
4
已解决
8716
浏览
0
投票
4
已解决
8716
浏览
0
投票
2
回答
2690
浏览
0
投票
1
回答
2820
浏览

SSRS启动慢

梁勇 回复了问题 • 2015-01-14 11:12