最佳化 BSO 立方體

最佳化 BSO 立方體可減少資料庫的大小;它涉及下列程序:

  • 將零區塊取代為 #missing 區塊
  • 移除 #missing 區塊以減少資料庫大小
  • 使用從未作為資料類型為 SmartList、Date、Text 和 Percentage 之成員的整合運算子

移除 BSO 立方體中的零

首先移除立方體中稀疏維度中的零區塊,方法是將它們取代為 #missing 區塊。

若要將零區塊取代為 #missing 區塊,請執行下列動作:

  1. 建立商業規則,將零區塊取代為 #missing 區塊。

    設定商業規則環境以最佳化此商業規則:

    SET UPDATECALC OFF;
    SET CREATENONMISSINGBLK OFF;
    SET CREATEBLOCKONEQ OFF;
    FIXPARALLEL(NumberThreads, @RELATIVE("SparseDim",0))
    FIX on all level 0 sparse dimension @RELATIVE(SparseDim,0)
    

    Note:

    • 雖然 UPDATECALCCREATENONMISSINGBLKCREATEBLOCKONEQ 依預設為停用,Oracle 建議在商業規則中明確關閉它們。
    • 請務必將 "SparseDim"取代為要取代其中零區塊之稀疏維度的名稱。
    • 使用 FIXPARALLEL 來協助改善效能,例如,FIXPARALLEL(4, @RELATIVE("Scenario",0))
    • 請務必指定 ENDFIXPARALLEL
  2. 使用下列其中一個最佳化的計算設計,將零區塊變更為 #missing 區塊。視您的維度設計、資料模式和程序而定,選取執行效能更佳的計算設計。

    計算設計 1 (適用於密集或稀疏計算)

    此計算將產生原始值,並將零值變更為 #missing。

    "DenseMbr" = "DenseMbr" * "DenseMbr" / "DenseMbr";
    "SparseMbr" = "SparseMbr" * "SparseMbr" / "SparseMbr";

    計算設計 2 (僅適用於區塊模式下的密集成員)

    "DenseBlockHeader" (
        @CALCMODE(BLOCK);
           IF ("DenseMbr" == 0) 
               "DenseMbr" = #Missing;
           ENDIF

    Note:

    DenseMbrSparseMbrDenseBlockHeader 取代為實際名稱。

從立方體中移除 #Missing 區塊

移除 #missing 區塊以減少 BSO 資料庫大小。使用下列其中一種方法清除 #missing 區塊:

方法 1

執行明確密集重新建立

Planning 中,此程序可以手動或透過工作執行。資料庫重新建立也可以使用 EPM Automate 和 REST API 執行。

若要使用 Calculation Manager 執行資料庫重新建立,請執行下列動作:

  1. 開啟 Calculation Manager。從導覽器 中,選取建立與管理中的規則
  2. 按一下動作,然後選取資料庫特性
  3. 企業檢視中,展開包含您要重新建立之立方體的資料庫。
  4. 在您要重新建立的立方體上按一下滑鼠右鍵,然後選取重新建立資料庫

資訊來源:

  • 使用 Oracle Enterprise Performance Management Cloud 的 EPM Automate 中的 restructureCube 命令
  • Oracle Enterprise Performance Management Cloud 的 REST API中的重新建立立方體

方法 2

清除所有資料。從您先前上傳至環境的檔案中重新載入所有資料。

使用「從未」作為資料類型為 SmartList、Date、Text 和 Percentage 之成員的整合運算子

資料類型為 SmartList、Date、Text 和 Percentage 的維度成員應使用從未作為整合運算子。使用加法整合運算子會增加立方體大小,而不會增加任何值。使用「忽略」作為整合運算子只會停止在成員的維度內進行增加;它不會停止從其他維度向上彙整值,這可能會建立不需要的區塊。