由下而上與由上而下計算

Essbase 區塊儲存立方體中,由上而下計算比由下而上計算更有效率,因為計算的區塊數目比必要的數目多。在某些情況下,可能需要由上而下計算,以確保計算結果是正確的。

Essbase 會使用由下而上計算或由上而下計算,執行資料庫大綱的完整計算。依預設, Essbase 會在非混合模式的區塊儲存立方體中使用由下而上計算。

附註:

如果立方體使用混合模式 (即 Essbase 21c 中的預設值),您可以略過此主題中的資訊。混合模式立方體已針對動態相依性分析進行最佳化。若要進一步瞭解,請參閱採用混合模式進行快速分析處理

對於由下而上計算, Essbase 會決定在計算立方體之前必須計算哪些資料區塊。然後, Essbase 只會計算必須計算的區塊。計算會從具有最低圖塊號碼的既有圖塊開始,並以號碼順序逐一處理每個圖塊,直到達到具有最高圖塊號碼的既有圖塊為止。請參閱區塊計算順序

如果大綱包含複雜成員公式, Essbase 會為相關成員執行由上而下計算。

由下而上計算與簡單公式

對於簡單公式, Essbase 會執行由下而上式計算,以決定在執行完整計算之前必須先計算哪些區塊。例如,對於成員上的簡易公式 (如 A = B + C),只有在資料庫中有 B 或 C 時才會計算 A。也就是說,在開始計算之前,已知 B 和 C 上公式的相依性。

由上而下計算與複雜公式

在開始計算之前, Essbase 會搜尋大綱並標示需要由上而下計算的複雜公式;例如,包含跨維度參照的成員公式。當 Essbase 達到由上而下公式的成員時,會為該成員執行由上而下計算。

當成員上的公式很複雜時,必須檢查成員的所有可能區塊,以查看是否必須變更現有區塊或建立新區塊;在計算開始之前,很難確定區塊在其他區塊上的相依性。由上而下方法會減緩計算效能,因為 Essbase 必須搜尋適當的區塊來計算公式。

編譯公式時,如果要由上而下計算公式, Essbase 會在應用程式日誌檔中記錄訊息。

請考量下列複雜公式:

A = B -> D + C -> D

若要計算公式, Essbase 必須檢查 A 的每個組合,以查看 B -> D 或 C -> D 是否存在。

請參閱複雜 Essbase 成員公式

強制由下而上計算

如果適用於網站,您可以在由上而下公式上強制由下而上計算。

若要強制由下而上計算,請使用下列其中一種方法:

在公式上強制由下而上計算通常會增加效能時間。如果公式包含複雜函式 (例如,範圍函式),或如果公式的相依性不直覺,由下而上計算可能會產生與由上而下計算的結果不同。

警示:

變更設定 CALCOPTFRMLBOTTOMUP 或在生產環境中使用計算命令檔命令 SET FRMLBOTTOMUP 之前,請先比較 (相對於相同的資料)、由下而上計算的結果以及由上而下計算的結果,檢查計算結果的有效性。