优化和性能注意事项

  • 在业务规则中使用模板,以避免重复代码部分并充分利用 RTP。
  • 检查每次计算中对动态计算成员的相关性。如有可能,对计算进行更改以避免重复使用动态计算或删除动态计算。
  • 使用 FIX 和 IF 语句集中计算,以确保仅计算所需的数据。
  • 避免创建 0(零)数据结果,除非您希望看到零;例如,用于库存水平。这会创建一个块,该块包含在所有 FIX 和 IF 语句中并会进行计算。如有可能,在数据加载时删除零,或在业务规则中阻止创建零。
  • 尽量避免在用于检查条件是否存在的 IF 语句中使用布尔逻辑。例如,将
    IF (("Budget" ==#missing) OR ("Budget" ==0))
    替换为以下内容,可提供相同结果但会避免使用布尔逻辑:
    IF ("Budget" +1==1) or IF (Budget/Budget ==#missing)
  • 尽可能在执行稀疏计算前执行密集计算。密集计算不会创建块,但稀疏计算会创建块。在执行聚合时,例如,要获得分配计算的合计,请确保仅对该分配计算所需的数据部分求和。
  • 将对数据库的计算遍数降至最低。
  • 避免递归公式。过度的递归会造成性能问题,并且可能需要清除一些值才能得到一致的结果。
  • 有关在 BSO 多维数据集中替换零块以及删除 #missing 块以减小数据库大小的最佳做法,请参阅“优化 BSO 多维数据集”。