최적화 및 성능 고려사항

  • 비즈니스 규칙에 템플리트를 사용하여 코드 섹션이 반복되는 것을 방지하고 RTP를 최대한 활용합니다.
  • 각 계산 내에서 동적 계산 멤버에 대한 종속성을 검토합니다. 가능한 경우 동적 계산 반복 사용이 포함되지 않도록 계산을 변경하거나 동적 계산을 제거합니다.
  • 필요한 데이터만 계산되도록 하려면 FIX 및 IF 문을 사용하여 계산에 초점을 맞추십시오.
  • 재고 레벨의 경우와 같이 0이 표시되지 않게 하려면 0 데이터 결과가 생성되지 않도록 합니다. 이렇게 하면 모든 FIX 및 IF 문에 포함되어 계산되는 블록이 생성됩니다. 가능한 경우, 데이터 로드에서 0을 제거하거나 비즈니스 규칙에서 0이 생성되는 것을 방지하십시오.
  • 조건이 존재하는지 여부를 확인하는 데 사용되는 IF 문 내에서는 부울 논리를 사용하지 마십시오. 예를 들어
    IF (("Budget" ==#missing) OR ("Budget" ==0))
    을 다음 코드로 바꿉니다. 그러면 부울 논리를 사용하지 않고 동일한 결과를 얻을 수 있습니다.
    IF ("Budget" +1==1) or IF (Budget/Budget ==#missing)
  • 가능한 경우, 밀집 계산을 먼저 수행한 후 희소 계산을 수행합니다. 밀집 계산에서는 블록을 생성하지 않지만 희소 계산에서는 블록을 생성합니다. 집계를 수행하는 경우 예를 들어, 할당 계산에 대한 합계를 구하려면 해당 할당 계산에 필요한 데이터 섹션만 집계해야 합니다.
  • 데이터베이스에서 성공 항목을 최소화합니다.
  • 재귀 공식은 피합니다. 재귀가 너무 많으면 성능 이슈가 생성될 수 있으며 일관된 결과를 얻기 위해서는 값을 지워야 할 수도 있습니다.
  • BSO 큐브에서 영(0) 블록을 바꾸고 #missing 블록을 제거하여 데이터베이스 크기를 줄이는 모범 사례를 보려면 BSO 큐브 최적화를 참조하십시오.