识别性能问题

Power BI 数据建模进阶

Sara Billen

Curriculum Manager at DataCamp

解决性能问题

一位女性坐在电脑前,仪表板加载缓慢。

Power BI 数据建模进阶

性能问题

沙漏插画。

可能出错的环节:

  • 数据导入
  • 使用 DirectQuery 查询数据库
  • 显示可视化
  • 计算列 vs. 计算得出列
  • 低效的关系
    • 多对多关系
    • 双向交叉筛选
Power BI 数据建模进阶

优化数据导入

  • 删除不必要的行和列
  • 选择正确的数据类型
    • 数值型占用更少空间
    • 转换与聚合更慢
  • 分组并汇总数据
    • 磁盘占用更少
    • 更快得到汇总结果

Pozer BI 中不同数据导入方式的示意图:Excel、CSV、数据库。

Power BI 数据建模进阶

优化 DirectQuery

  • 两种连接数据的方式:
    • 导入模型:将数据存储在 Power BI 中
    • DirectQuery:直接查询数据库

$$

  • 限制并行查询
  • 关系型数据库建议
    • 编写高效 SQL 查询
    • 使用合适的索引
    • 获取所需的列与行

在 Power BI 中加载数据的不同方式示意图:一侧为导入功能,另一侧为 DirectQuery(连接数据库)。

Power BI 数据建模进阶

计算列 vs. 计算得出列

使用以下方式构建自定义列:

计算列 计算得出列
DAX Power Query (M)
适合_简单_计算,速度快 适合_简单_计算,速度快
复杂计算较慢 复杂计算较快
每个可视化在运行时生成 导入时生成一次
Power BI 数据建模进阶

用筛选度量移除双向筛选

  • 双向筛选的用例
    • 在维度间找到相关的切片器项
  • 可创建筛选度量,避免为第三个用例使用双向关系!
Power BI 数据建模进阶

用筛选度量移除双向筛选

Power BI 数据模型,仅显示单向筛选和 Slicer_MyFactTable 筛选度量。

Power BI 数据建模进阶

用筛选度量移除双向筛选

1) 在 DAX 中创建筛选度量:

Slicer_MyFactTable = INT(NOT ISEMPTY('My Fact Table'))
  • 若事实表中至少有一个值则返回 1
  • 若事实表中无值则返回 0

$$

2) 向切片器添加可视化级别筛选,并设置 Slicer_MyFactTable = 1

Power BI 数据建模进阶

显示可视化对象

电脑屏幕显示 Power BI 应用中的报表。

$$

  • 使用更严格的筛选以最小化数据
  • 可视化上尽量少显示数据
  • 限制每页可视化数量
  • 仅使用快速的自定义可视化
Power BI 数据建模进阶

开始练习吧!

Power BI 数据建模进阶

Preparing Video For Download...