最適化とパフォーマンスに関する考慮事項

  • コードの繰返しセクションを回避し、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キューブの最適化を参照してください。