当Powerbi遇到quickbi,性能优化方式对比
powerbi性能优化
对于powerbi,性能优化可以从15个方面考虑:
1.过滤源数据【quickbi数据集过滤或sql过滤】
2.删除无关列 【quickbi不选字段或sql不查询】
3.聚合分析粒度 【quickbi使用sql聚合或计算字段聚合】
4.整理字段 【quickbi使用sql聚合或计算字段聚合】
5.禁用不必要的加载 【quickbi不可做】
6. 禁用系统日期表 【quickbi可以使用单独一张日期表数据集】
7.选择适当的数据类型 【quickbi计算字段可以选择维度或度量】
8.选择合适的连接方式 【quickbi只有直连】
9.避免使用计算列 【quickbi只有计算字段,类似度量值,但也不是度量值】
10.不断优化DAX 【quickbi修改使用函数也可达到目的】
11.尽量使用内置可视化对象 【quickbi高级版只有内置图表可用】
12.避免直接展示明细数据 【quickbi不会因为明细表影响效率】
13.避免过度使用交互 【quickbi有交互功能,性能优劣不取决于交互】
14.简化设计 【quickbi图表超100个以后,整个看板性能会变差】
15.定期更新PowerBI Desktop 【quickbi每月更新】
quickbi性能优化
但quickbi没有这么复杂,大的方面主要分为2种:开启加速引擎,添加占位符默认值。
实际优化效果:
加载速度可以从2分钟缩短到5秒甚至1秒内。
对quickbi看板搭建的理解:
quickbi仪表板是通过连接数据库,通过写sql代码生成数据集,再使用内置的图表生成可视化看板的;即便使用内置的探索空间,上传excel到探索空间,本质上也是使用了内置的数据库,因此quickbi做性能优化需要从数据集入手。
下文分享如何做性能优化,主要分为2大类,数据集含占位符、数据集不含占位符。
情况一:不含占位符
a. 多表连接或单独一个表或者sql数据集,未添加加速配置
可以使用加速配置,性能优化大概可以缩短至5秒内,甚至更短
开启前:
开启后:
b. 已添加加速配置,
相同网页,首次打开慢,第二次打开快,可以使用查询结果缓存
情况二:使用占位符
a.占位符没有使用默认值,
可以使用添加数据集的占位符默认值,打开速度可以从16秒缩短至2秒左右
b.占位符使用默认值,
当开启缓存后,查询链路仍然是数据库时,可以通过在sql代码中通过where条件限制日期区间,可以有效提高性能
两款BI的对比:
相对powerbi来说,quickbi的性能优化方式比较简单,不需要思考更多的可能性。
对于上方标红的部分:
1. 对于禁用不必要的加载:
如果是同一个数据模型,powerbi可以禁用某个数据表在更新数据时不加载;
但quickbi在更新数据集时,是数据集内所有的数据同时进行查询,从而更新数据,如果想要进行部分更新,可以限制日期范围,但对于所有用到的表来说,还是进行了全表更新。
2. 选择合适的连接方式
powerbi可以选择直连,也可以选择导入模式,powerbi的导入模式相当于把数据表全部加载进模型中,作为缓存使用。
quickbi使用直连模式,当开启加速引擎后,才将数据结果进行缓存,如果部分函数不支持加速引擎或使用占位符,则quickbi数据集就又自动转为直连模式。
3.避免使用计算列
powerbi的计算列是会计算在内存中,而度量值只有在使用时才会计算,且度量值不占用内存,度量值创建数量没有限制。
而quickbi只有计算字段,不使用时不占用内存,在使用时才会占用内存,但当计算字段的度量超89个之后,就无法再创建新的度量。