诊断 Financial Reporting 报表性能问题

Financial Reporting 报表设计不佳可能会生成多个多维表达式 (Multi-Dimensional Expression, MDX) 请求或 Oracle Essbase 查询,从而消耗大量的 Oracle Enterprise Performance Management Cloud 资源。当多个用户同时访问此类报表时,过度的资源消耗会导致性能下降。

报表中存在多个段是生成大量 MDX 请求的关键原因。本节介绍如何通过减少段的数量来提高 Financial Reporting 的效率。

重新设计报表:一个用例

原始报表

下图显示了原始报表设计:
原始报表设计示例
此报表图显示了以下设计元素:
  • 各个实体成员占用多行:100、200、403 和 500。
  • 每个实体成员有 8 行,每行对应一个不同的帐户。

下表显示原始报表设计和优化设计的高级视图:

原始报表设计 优化设计
各个实体成员占用多行:

100

200

300

400

将各实体成员合并成一段:

100, 200, 403, 500

每个实体成员有 8 行,每行对应一个不同的帐户。成员 100 的示例:

100 = Children of 1100

100 = 1100

100 = Children of 1200

100 = 1200

100 = Children of 1300

100 = 1300 100 = Children of 1400

100 = 1400

将所有成员的所有段合并成一段:

Entity members 100,200,403,500=Children of 11

优化报表

下图显示优化后的报表设计,其中减少了段的数量。减少段的数量就可以减少 MDX 请求数,这样报表就会运行得更快:
重新设计的报表示例

其他重要的报表设计注意事项

  • 如果可以,针对 ASO 多维数据集设计报表。仅当 ASO 多维数据集不可用时,才针对 BSO 多维数据集设计报表。
  • 始终选择隐藏下的缺失的块,以确保报表中不包括缺少的块。
  • 最大限度地减少行数和列数。最佳做法:为列使用密集维,为行使用稀疏维。
  • 将报表设计为在所需的子成员级而不是父级进行查询。
  • 如果 0 级成员标记为“动态计算”但没有公式,请删除“动态计算”标记或为其创建公式。您无法将数据加载到标记为“动态计算”的 0 级成员中。它们无法显示值,因为它们标记为“动态计算”但没有用于计算值的公式。此类成员会对检索性能产生不利影响。
  • 如果可能,避免使用具有大量成员组合的关系类型报表(使用函数展开多个行维的报表)。大型报表的执行可能需要大量时间(或可能不会执行)。单元格数超过一万的报表即视为大型报表。这与将 Financial Reporting 视为大规模数据提取工具类似,但事实并非如此。
  • 避免使用包含大量单元格的报表,这些单元格具有从数据源检索其他元数据的文本函数(例如,CellTextPlanningAnnotationsListOfCellDocuments 等)。
  • 使用当前 POV、提示符或帐簿而不是页维;执行报表时将一次检索所有页成员。
  • 考虑并测试条件格式设置和条件隐藏的影响,这可能会影响性能,具体取决于报表的大小。性能取决于在报表中使用的条件的类型和使用频率。属于元数据或数据查询一部分的条件(例如,数据值、成员名称、成员别名或说明)可以快速呈现。对于大型报表,尽量减少使用不属于常规元数据或数据查询的条件。此类条件的示例包括层代、级别、帐户类型和属性值。
  • 考虑维布局。例如,分析可将哪些内容从 POV 或页移动到报表主体。
  • 始终设计对称(与非对称)报表。Essbase 查询可能为对称或非对称。对称查询是指在行或列上查询的成员属于跨维布局的查询。非对称查询是指被查询成员的跨维布局在行或列中发生更改的查询。

    遇到非对称查询时,Essbase 混合查询引擎(仅处理对称网格)会自动将其分解为多个对称网格。一次只能处理一个对称网格,然后再以原始非对称形式将其返回,这使得流程的效率降低。

Financial Consolidation and Close 检索性能进行故障排除

有关对 Financial Consolidation and Close 环境中的报表性能进行故障排除的信息,请参阅“对 Financial Consolidation and Close 检索性能进行故障排除”。

检查最近的应用程序更改

确定是否是最近的应用程序更改导致了报表生成速度减慢。您可以通过将当前“活动报表”的“应用程序大小”表中的信息与以前某个日期报表正常工作时“活动报表”中的信息进行比较来完成此操作。此外,还要检查最近对报表设计和使用所做的任何更改,以确保这些更改没有影响报表。