範例商業規則

  • 在此範例中,我們已將五個年累計成員新增至 Account 維度:"4110_UTD"、"4120_YTD"、"4130_YTD"、"4140_YTD"、"4150_YTD"。然後建立商業規則:


    具有五個年累計成員的範例商業規則已新增至 Account 維度

    商業規則計算兩個 YTD 科目,然後透過 ProductEntity 維度聚總值。

  • 查看已選取之僅執行的日誌訊息,我們可以看到大部分規則時間是在第一次執行時獲得的。


    已選取「僅執行」的日誌訊息

  • 取消選取僅執行,可讓我們查看日誌的 pass1 區段中的區塊讀取/寫入次數。


    已取消選取「僅執行」的日誌訊息

  • 檢閱語法,我們可以看到在 EntityProduct 上的計算並沒有 Fix;因此,所有規則都在 EntityProduct 的所有層級上執行。不需要計算 pass1 的上層,因為無論如何這些都會被第二次執行的 AGG 陳述式覆寫。


    螢幕擷取畫面顯示計算並沒有對 Entity 和 Product 使用 Fix。

  • 複查規則,並增加額外的 Fix 陳述式,以將 EntityProduct 的 lev0 新增至 Pass1。


    顯示的規則增加了額外的 Fix 陳述式,以將 Entity 與 Product 的 lev1 新增至 Pass1

  • 然後再次執行規則。

  • 修改之後,Pass1 仍需要最長的時間,但因為不再需要計算上層區塊,現在時間加快 20%。整體計算時間也提高 20%。


    「日誌訊息」頁籤顯示計算時間加快 20%。

  • 取消選取僅執行,我們可以看到日誌的 Pass1 區段中的區塊、讀取、寫入次數在變更後下降。


    顯示規則變更前的計算器資訊訊息螢幕擷取畫面


    顯示規則變更後的計算器資訊訊息螢幕擷取畫面

  • 正如我們在活動報表中所見,這樣可以減少對整個業務規則 (兩次執行) 的讀取與寫入次數。


    顯示在規則變更前後,前 5 個計算指令碼執行效果最差的螢幕擷取畫面