在 Power BI 嵌入式分析中提高性能的最佳做法

本文提供在应用程序中更快呈现报表、仪表板和磁贴的相关建议。

注意

请注意,加载时间主要取决于与报表和数据本身相关的元素,包括视觉对象、数据的大小以及查询和度量值的复杂性。 有关详细信息,请参阅 Power BI 优化指南

更新工具和 SDK 包

使工具和 SDK 包保持最新。

初始化嵌入

预加载

使用 powerbi.preload() 改善最终用户体验。 方法 powerbi.preload() 会下载 JavaScript、css 文件和其他,这些内容稍后将用于嵌入报表。

如果不立即嵌入报表,请调用 powerbi.preload()。 例如,如果主页未显示 Power BI 嵌入内容,则使用 powerbi.preload() 下载并缓存用于嵌入内容的项。

启动 iFrame

注意

需要 Power BI 客户端 SDK 版本 2.9 才能启动 iFrame。

借助 powerbi.bootstrap(element, config),你可以先开始嵌入,然后再提供所有必需的参数。 启动 API 将准备并初始化 iFrame。 使用启动 API 时,仍需在同一个 HTML 元素上调用 powerbi.embed(element, config)

例如,此功能的一个用例是并行运行 iFrame 启动和用于嵌入的后端调用。

提示

如果能够在向最终用户显示 iFrame 前先生成它,则使用启动 API

嵌入报表或其他 Power BI 项时,请确保嵌入容器是 DOM 的一部分,并且显示 CSS 属性未设置为 none,因为这样可能会导致意外行为。 如果要隐藏嵌入容器,请考虑使用可见性 CSS 属性。

嵌入参数

powerbi.embed(element, config) 方法接收元素和 config 参数。 config 参数包括对性能有影响的字段。

嵌入 URL

避免自己生成嵌入 URL。 确保通过调用获取报表获取仪表板获取磁贴 API 来获取嵌入 URL。 URL 中的 config 参数用于提高性能。

权限

如果不打算在编辑模式下嵌入报表,则提供“查看”权限。 这样,就不会花费时间来初始化仅在编辑模式下使用的组件。

筛选器、书签和切片器

通常情况下,报表视觉对象会连同缓存数据一并保存。 执行查询时,报表会呈现缓存数据。 如果提供了筛选器、书签或切片器,则不使用缓存数据,并且仅在视觉查询结束后才呈现视觉对象。

如果嵌入具有相同筛选器、书签和切片器的报表,请保存已应用筛选器、书签和切片器的报表。 以这种方式保存报表时,它会使用包含筛选器、书签和切片器的缓存数据呈现,从而提高性能。

在报表之间切换

将多个报表嵌入同一空间时,不要为每个报表生成新的 iFrame。 相反,请将新报表嵌入同一 iFrame 以覆盖之前的报表。 使用具有不同配置的 powerbi.embed(element, config) 来嵌入新报表。

注意

使用嵌入令牌为客户嵌入报表(也称为“应用拥有数据”方案)时,需要使用对所有报表和语义模型具有权限的嵌入令牌。 有关更多信息,请参阅生成令牌 API

多个视觉对象

从同一报表嵌入多个视觉对象时,不要为每个视觉对象生成新的 iFrame。 使用单个 iFrame 以指定的视觉对象呈现报表

将多个视觉对象嵌入单个 iFrame 时,请考虑以下事项:

  • Power BI 使用 iFrame 来嵌入报表。 有时你可能希望在视觉对象之间添加更多内容(例如,不是来自报表的文本或图形)。 在这种情况下,可能需要不同的 iFrame 来呈现不同的视觉对象。 为获得最佳性能,请尝试排列视觉对象,以便使用尽可能少的 iFrame。 要减少 iFrame 的数量,请考虑使用自定义布局功能

  • 如果具有来自不同报表或不同语义模型的视觉对象,请考虑联接语义模型并创建新报表,以便在同一 iFrame 中包含所有视觉对象。

  • 如果具有非连续区域或来自多个语义模型的数据,则另一种替代方法是创建仪表板,并将视觉对象固定到该仪表板。 这样,便可以:

    • 将各个图块嵌入非连续 iFrame。 仪表板图块比报表更轻,加载速度更快。
    • 将整个仪表板嵌入一个 iFrame。 这样,无需创建新报表,即可在一个 iFrame 中拥有来自不同报表或语义模型的视觉对象。

    但请记住,仪表板图块不能交互,并且不会以与视觉对象相同的频率刷新

查询缓存

具有 Power BI Premium 容量或 Power BI Embedded容量的组织可使用查询缓存来加快与语义模型关联的报表的速度。

详细了解 Power BI 中的查询缓存

测量性能

性能事件

若要测量嵌入的性能,可以使用两个事件:

  1. 加载的事件:报表初始化所用的时间(Power BI 徽标将在加载完成后消失)。
  2. 呈现的事件:使用实际数据呈现出完整报表所用的时间。 每次重新呈现报表(例如,应用筛选器后)时将触发呈现事件。 若要测量报表,请确保对第一个事件执行了计算。

缓存数据在可用时呈现,但不生成其他事件。

详细了解事件处理

性能分析器

若要检查报表元素的性能,可以在 Power BI Desktop 中使用性能分析器。 使用性能分析器可以查看和记录用于度量每个报表元素的执行方式的日志。

详细了解性能分析器

注意

请务必始终将嵌入报表的性能与 powerbi.com 上的性能进行对比。 这可以帮助你了解性能问题的来源

后续步骤