ビジネス・ルール例

  • この例では、年度累計を表す5個のメンバー("4110_YTD"、"4120_YTD"、"4130_YTD"、"4140_YTD"、"4150_YTD")を勘定科目ディメンションに追加しました。その後、次のビジネス・ルールを作成しました。


    5個の年度累計メンバーがAccountディメンションに追加されたビジネス・ルールの例

    このビジネス・ルールは、2つのYTD勘定科目を計算し、製品ディメンションとエンティティ・ディメンションの値を集計します。

  • 「パスのみ」が選択された状態でログ・メッセージを見ると、ルールの時間のほとんどが最初のパスで費やされたことがわかります。


    「パスのみ」が選択されたログ・メッセージ

  • 「パスのみ」の選択を解除すると、ログのpass1セクションでのブロックおよび読取り/書込みの数を確認できます。


    「パスのみ」が選択解除されたログ・メッセージ

  • 構文を確認すると、この計算にはエンティティ製品に対するFixが含まれないことがわかります。つまり、すべてのルールがエンティティ製品のすべてのレベルで実行されます。pass1の上位レベルを計算する要件はありません。いずれにせよ、それらは2番目のパスのAGG文によって上書きされるためです。


    計算にエンティティと製品に対するFixが含まれないことを示すスクリーンショット。

  • ルールを確認し、エンティティ製品のlev0をPass1に追加する新たなFix文を追加します。


    エンティティと製品のlev1をPass1に追加する新たなFix文が表示されているルール

  • この後、再びルールが実行されます。

  • 変更してもPass1にかかる時間が最も長くなりますが、このときは上位ブロックの計算が必要ないため20%短縮されます。計算全体の時間も20%短縮されます。


    計算時間の20%短縮を示す「ログ・メッセージ」タブ。

  • 「パスのみ」の選択を解除すると、ログのPass1セクションでのブロック数、読取り数、書込み数が変更後に減少したことを確認できます。


    ルール変更前の計算処理情報メッセージを示すスクリーンショット


    ルール変更後の計算処理情報メッセージを示すスクリーンショット

  • アクティビティ・レポートで確認できますが、これによってビジネス・ルール全体(両方のパス)での読取り数と書込み数が減少しています。


    ルール変更前とルール変更後の低パフォーマンスの計算スクリプト下位5件を表示するスクリーンショット