【来自商业智能学院 SSRS 2012 Metro UI 高端报表视频教程】案例7:报表负载分配
0
问题来源: SSRS 2012 Metro UI 高端报表视频教程【全国首家】 http://www.hellobi.com/course/15老师:
您好,基于这节课的内容,让我想到了关于BI负载的问题。
按性能最优的角度考虑,应该将所有的业务及数据处理操作,放在数据库引擎中。但我想知道,在什么情况下,把处理放在展现层合理,什么情况下,放在DB处理合理,还请老师指点一下。再次感谢精彩的讲解。
您好,基于这节课的内容,让我想到了关于BI负载的问题。
按性能最优的角度考虑,应该将所有的业务及数据处理操作,放在数据库引擎中。但我想知道,在什么情况下,把处理放在展现层合理,什么情况下,放在DB处理合理,还请老师指点一下。再次感谢精彩的讲解。
没有找到相关结果
重要提示:提问者不能发表回复,可以通过评论与回答者沟通,沟通后可以通过编辑功能完善问题描述,以便后续其他人能够更容易理解问题.
1 个回复
梁勇 - 天道酬勤、上善若水。爱好商业智能 2015-03-23 回答
赞同来自:
我经手的基于数据库的 SSRS 报表估计不下500张,在大部分设计不是非常复杂的前提下,基本上出现性能问题的报表可以肯定的是:
1. SQL Query 返回了过多的查询结果
2. 聚合的部分放在了 SSRS 报表上,而不是 SQL Query 里
对于 1, 返回过多的结果首先就是从数据仓库抓数据到 Report Server 中这个过程就慢。
对于 2, 大量的聚合放在 SSRS 报表上,本身就是数据量大,再聚合,在渲染展现,这个过程会造成更慢的结果。
所以越少的结果集返回,基本上到了 SSRS 报表中展现就非常快了。同样的报表,先查询再在报表上聚合可能是10分钟,但是先聚合再展示可能不到5 秒,这是我们项目中碰到过的情况,原理就是这样的。
如果数据仓库服务器压力比较大,不得已的情况下只能将 Report Server TempDB 的初始空间和增长空间放大比如1G,这样聚合的时候是在 TempDB 中完成的,需要大量的计算使用临时数据库空间。
最优原则:返回少量的结果集,把聚合放在源端数据仓库,调优 SQL 该加索引的就加索引。一旦这样优化完,SSRS 报表的效率可以提高非常多。