Power BI 优化指南

本文提供的指南使开发人员和管理员能够生产和维护优化的 Power BI 解决方案。 可以在不同的体系结构层优化解决方案。 这些层包括:

  • 数据源
  • 数据模型
  • 可视化效果(包括仪表板、Power BI 报表和 Power BI 分页报表)
  • 环境(包括容量、数据网关和网络)

优化数据模型

数据模型支持整个可视化体验。 数据模型托管在 Power BI 生态系统或外部(使用 DirectQuery 或实时连接),在 Power BI 中,它们称为“语义模型” — 以前称为数据集。 请务必了解你的选择,并为解决方案选择适当的语义模型类型。 共有三种语义模型模式:导入、DirectQuery 和复合。 有关详细信息,请参阅 Power BI 服务中的语义模型Power BI 服务中的语义模型模式

有关特定语义模型模式指南,请参阅:

优化可视化效果

Power BI 可视化效果可以是仪表板、Power BI 报表或 Power BI 分页报表。 每种可视化效果都有不同的体系结构,因此具体指南也有所不同。

仪表板

请务必了解,Power BI 维护仪表板磁贴的缓存,但不包括实时报表磁贴和流式处理磁贴。 如果你的语义模型强制实施动态行级别安全性 (RLS),请务必了解性能影响,因为磁贴将以每用户为基础进行缓存。

将实时报表磁贴固定到仪表板后,查询缓存中不会提供这些磁贴。 而是执行类似于报表的操作,动态查询虚拟核心。

顾名思义,与依赖数据源相比,从缓存中检索数据可提供更好、更稳定的性能。 利用此功能的一种方法是将仪表板作为用户的首个登录页。 将经常使用且请求次数较高的视觉对象固定到仪表板。 通过这种方式,仪表板成为有价值的“第一道防线”,可通过容量上的较低负载提供稳定的性能。 用户仍然可以单击查看报表以分析详情。

对于 DirectQuery 和实时连接语义模型,缓存是通过查询数据源进行定期更新的。 默认情况下,它每小时查询一次,但你可以在语义模型设置中配置不同的频率。 每个缓存更新都会将查询发送到基础数据源来更新缓存。 生成的查询数量取决于在依赖于数据源的仪表板上固定的视觉对象数量。 请注意,如果启用了“行级别安全性”,则会为每个不同的安全性上下文生成查询。 例如,假设有两个不同的角色用于对用户进行分类,并且它们具有两个不同的数据视图。 在查询缓存刷新期间,Power BI 会生成两组查询。

Power BI 报表

对于优化 Power BI 报表设计,有一些建议。

注意

当报表基于 DirectQuery 语义模型时,对于其他报表设计优化,请参阅 Power BI Desktop 中的 DirectQuery 模型指南(优化报表设计)

应用限制性最强的级别

视觉对象需要显示的数据越多,加载视觉对象的速度越慢。 虽然此道理显而易见,但很容易忘记。 例如:假设你有一个大型语义模型。 基于该语义模型,使用表生成报表。 最终用户在此页上使用切片器来获取他们所需的行,通常他们只对某几十行感兴趣。

一个常见的错误是采用表未经筛选的默认视图,即显示全部的一亿多行。 这些行的数据会加载到内存中并在每次刷新时解压缩。 这种处理对存储器产生了巨大的需求。 解决方案:使用“Top N”筛选器减少表显示的最大项数。 可以将最大项数设置为大于用户所需数量,例如 10,000。 结果是最终用户体验不会发生变化,但内存使用会大幅下降。 最重要的是,提高了性能。

对于报表中的所有视觉对象,建议采用以上类似的设计方法。 问问自己,是否需要此视觉对象中的所有数据? 是否有方法可将视觉对象中显示的数据量滤除,而又不会对最终用户体验造成过多影响? 请注意,尤其是表可能成本高昂。

限制报表页上的视觉对象

上述原则同样适用于报表页上添加的视觉对象数量。 强烈建议将特定报表页上的视觉对象数量限制为仅包括必需的视觉对象。 钻取页面报表页工具提示是不错的方法,它们可提供更多详细信息,而又不会在页面上显示过多视觉对象。

评估自定义视觉对象性能

确保将每个自定义的视觉对象通过其节奏来确保高性能。 Power BI 视觉对象优化欠佳可能会对整个报表的性能产生负面影响。

Power BI 分页报表

通过将最佳做法设计应用到报表的数据检索,可以优化 Power BI 分页报表的设计。 有关详细信息,请参阅分页报表的数据检索指南

此外,请确保容量有足够的内存分配给分页报表工作负载

优化环境

通过配置容量设置、调整数据网关大小并减少网络延迟,可以优化 Power BI 环境。

容量设置

使用容量(通过 Power BI Premium (P SKU)、Premum Per User (PPU) 许可证或 Power BI Embedded (A SKU, A4-A6) 提供)时,可以管理容量设置。 有关详细信息,请参阅 Microsoft Fabric 容量许可证管理 Premium 容量

重要

有时本文指的是 Power BI Premium 或其容量订阅 (P SKU)。 请注意,Microsoft 目前正在合并购买选项并停用 Power BI Premium Per Capacity SKU。 新客户和现有客户应考虑改为购买 Fabric 容量订阅 (F SKU)。

有关详细信息,请参阅 Power BI Premium 许可即将进行的重要更新Power BI Premium 常见问题解答

调整网关大小

当 Power BI 必须访问无法直接通过 Internet 访问的数据时,就需要网关。 可以将本地数据网关安装在本地服务器上,也可以安装在 VM 托管的基础结构即服务 (IaaS) 上。

若要了解网关工作负载和调整大小的建议,请参阅本地数据网关大小调整

网络延迟

网络延迟可增加请求到达 Power BI 服务以及传输响应所需的时间,从而影响报表的性能。 Power BI 中的租户被分配到一个特定区域。

提示

要确定租户的位置,请参阅我的 Power BI 租户位于何处?

当来自租户的用户访问 Power BI 服务时,他们的请求将始终被路由到此区域。 请求到达 Power BI 服务后,服务就可以发送其他请求(例如,到基础数据源或数据网关的请求),这也会受到网络延迟的影响。

诸如 Azure 速度测试之类的工具可提供客户端与 Azure 区域之间的网络延迟的指示。 一般来说,为了尽量降低网络延迟的影响,请争取使数据源、网关和 Power BI 容量尽可能地靠近。 它们最好位于同一区域中。 如果网络延迟成为一个问题,请尝试将网关和数据源放在云托管的虚拟机内,以查找与 Power BI 容量更近的网关和数据源。

监视性能

可以监视性能以确定瓶颈。 应重点针对速度缓慢的查询或报表视觉对象进行持续优化。 监视可以在设计时在 Power BI Desktop 中完成,也可以在 Power BI Premium 容量中的生产工作负载上完成。 有关详细信息,请参阅在 Power BI 中监视报表性能

有关本文的详细信息,请参阅以下资源: