嘿,各位数据江湖的大侠们!今天咱们就来扒一扒报表性能这个神秘又关键的事儿,为啥有时候报表慢得像蜗牛散步呢……别担心,今天我们就来聊一聊如何让你的报表摆脱“龟速”,一路“飞”起来!
常见性能问题——报表的“慢性病”
首先,让我们来数一数报表的那些“慢性病”:
- 报表加载慢:等报表加载的时间,都能泡杯咖啡了。
- 大数据组件加载慢:数据量大一点,报表就变成了“慢羊羊”。
- 复杂仪表盘性能差:组件多、逻辑复杂,报表瞬间变成“卡顿大王”。

性能影响因素——报表的“拦路虎”
报表性能受多种因素影响,就像唐僧取经一样,要过九九八十一关:
- 网络带宽:网络差一点,报表加载就成了“龟速”。
- 服务器性能:服务器不够给力,报表就像被绑住了手脚。
- 客户端性能:客户端配置低,报表就变成了“蜗牛”。
- 报表制作:一个不小心,报表就变成了“性能杀手”。
报表性能常见错误做法——报表的不当实践
在报表制作的世界里,有些做法就像是在参加一场“谁最慢”的比赛:
1、组件数量过多:报表中塞满了各种组件,就像一个“组件大杂烩”
- 指标卡实现方式不恰当,多个指标,使用多个指标卡组件来展示。

- 仪表盘/组件背景实现方式不恰当,用一个或多个图片组件作为组件和仪表盘的背景。


2、画布选择不当: 像穿了一件超大号的“衣服”

3、图片数量过多、过大:仿佛在办“摄影展”
- 仪表盘中的图标、logo、标题背景图片、组件背景图片等累计起来数量较多、图片文件过大。

4、仪表盘太复杂:报表结构,像“魔方”一样绕
- 仪表盘中使用了复杂的嵌套结构,如URL嵌套URL、页签嵌套页签。URL嵌套URL、页签嵌套页签的情况下绑定URL组件

性能优化建议——报表的“神医处方”
别急,我们有妙招帮你解决这些“病”,就像神医开出的处方:
1、精简组件,“断舍离”
- 尽可能使用较少的组件实现相同的功能。例如,可以使用一个文本组件来展示多个指标,而不是使用多个独立的组件。


- 在报表编辑完毕后,检查是否有冗余组件并及时删除,确保每个组件都有其存在的必要性。
2、合适的画布,穿一件合身的“衣服”
按实际的分辨率选择画布大小,尤其是移动端类型的仪表盘,避免选择远超实际需要的画布大小,减少资源浪费。
3、优化图片,让资源“苗条”些
- 将多个图片合并到一起,减少请求次数。例如,指标看板的背景/边框+图标可合并,仪表盘背景+标题图标+组件背景/边框可合并。

4、简化报表结构,变回“直线跑道”
拆分报表,避免使用复杂的嵌套结构,如页签嵌套页签的情况下使用URL组件,URL嵌套URL。最多推荐用1个页签组件绑定URL组件实现菜单切换的方式。
5、优化组件类型,适合的才是最好的!
根据需求选择合适的组件类型。例如:
- 文字的实现优先选择静态标签组件;
- 动态内容选择文本组件;
- 进度指标实现组件优先级:水球图 > 进度图 > 油量图;
- 指标组件优先级:指标看板 > 文本组件 > 指标卡。
6、开启滚动加载、拆分仪表盘长度

- 拆分仪表盘长度,使用页签+URL方式拆分仪表盘,减少初始化时的取数请求。但只限制于1个页签+N个URL的场景。
7、开启缓存、SQL引擎

- 开启SQL引擎;走olap引擎的取数逻辑需要有MDX解析、执行多个SQL、OLAP计算结果集等环节,有些可以直接执行SQL的情况直接走SQL引擎会少许多环节,因此默认开启SQL引擎会更好,让系统自动判断走OLAP引擎还是SQL引擎。

8、合理使用筛选器控件类型
筛选器若是被联动/传参并且是隐藏的,那么可以改成文本输入框控件减少备选值的请求。

性能问题的信息采集手段——找到“病根”
遇到性能问题,别急,我们有办法找到“病根”:
1、获取报表执行的MDX和SQL:就像破译神秘的代码,揪出问题的“小尾巴”。
参考文档:获取数据模型的执行MDX和SQL
2、CPU采样:查看服务器方法调用时间,像是在观察敌人的心跳,看看哪里出了问题。
Smartbi服务器端:系统监控-性能(CPU采样)
OLAP引擎端:采集数据模型性能CPU采样信息
3、网络请求:查看浏览器与服务器之间的请求和响应耗时,就像追踪通信线路。
方法一:浏览器开发者工具-网络(访问smartbi的URL加上 ?debug=true):F12-network
方法二:Charles:Charles
希望这些优化建议能帮助大家在数据报表的制作过程中,让报表真正“飞”起来。
性能优化是一个持续的过程,需要我们在实践中不断探索和调整。让我们一起努力,打造出既美观又高效的报表吧!
【有奖互动】亲爱的数据达人们,我们诚挚邀请您分享提升交互仪表盘性能的技巧,精彩回复将获得惊喜麦豆奖励!让我们一起来探讨这个数据分析中的经典话题吧! |