동적으로 계산할 값

일부 데이터 값을 동적으로 계산하면 일괄 처리 계산 시간과 디스크 사용량이 줄어들지만 검색 시간이 늘어날 수 있습니다. 동적으로 계산할 Essbase 멤버를 결정할 때 다음 항목에 설명된 지침을 사용합니다.

공식, 레이블 전용 멤버 및 공유 멤버가 없는 레벨 0 멤버를 제외하고 모든 멤버를 동적 계산으로 태그 지정할 수 있습니다.

동적으로 계산하도록 선택하는 멤버는 데이터베이스 구조 및 (1) 계산 시간과 디스크 사용량 감소의 필요성, (2) 유저에 대한 빠른 데이터 검색의 필요성 사이의 균형에 따라 달라집니다.

샘플 기본 데이터베이스에서 연도 차원은 동적 계산입니다.

그림 21-1 동적 계산 멤버를 보여주는 샘플 기본 개요


동적 계산 멤버가 있는 연도 차원

Smart View에서 사용자는 시각적 신호를 표시하여 동적으로 계산된 값을 구별할 수 있습니다.

동적으로 계산된 값이 포함된 쿼리를 개발하는 경우 Smart View [데이터 없이 탐색] 옵션을 사용하여 테스트 쿼리가 작성되는 동안 Essbase에서 값을 동적으로 계산하고 저장하지 않도록 합니다.

밀집 멤버 및 동적 계산

밀집 차원의 Essbase 동적 계산 멤버에 적합한 후보에는 상위 레벨 멤버와 단순 공식이 있는 레벨 0 멤버가 포함됩니다.

밀집 차원의 멤버를 다음과 같이 변경하는 것이 좋습니다.

  • 밀집 차원의 상위 레벨 멤버를 동적 계산으로 태그 지정합니다.

  • 단순 공식이 동적 계산인 밀집 차원의 레벨 0 멤버에 태그를 지정하고 검색 시간 증가를 평가합니다.

    단순 공식에는 값비싼 계산을 수행하기 위해 Essbase가 필요하지 않습니다. 재무 함수 또는 다차원 연산자(->)가 포함된 공식은 복잡한 공식입니다.

희소 멤버 및 동적 계산

희소 차원의 Essbase 동적 계산 멤버에 적합한 후보에는 하위 멤버가 매우 많지 않은 상위 레벨 멤버와 공식이 있는 멤버가 포함됩니다.

희소 차원의 멤버를 다음과 같이 변경하는 것이 좋습니다.

  • 6개 이하의 하위가 있는 희소 차원의 일부 상위 레벨 멤버를 동적 계산으로 태그 지정합니다.

  • 복잡한 공식이 있는 희소 차원 멤버를 동적 계산으로 태그 지정합니다.

    복잡한 공식의 경우 값비싼 계산을 수행하려면 Essbase가 필요합니다. 예를 들어 재무 함수를 포함하는 공식은 복잡한 공식입니다. 복합 Essbase 멤버 공식을 참조하십시오.

  • 자주 재구성하는 차원의 상위 레벨 멤버를 동적 계산으로 태그 지정합니다.

  • 20개 이상의 종속 항목이 있는 상위 레벨의 희소 차원 멤버에 동적 계산 태그를 지정하지 마십시오.

상위-하위 관계 및 동적 계산

한 자녀가 있는 부모

상위 멤버의 1차 하위 멤버가 하나이고 해당 1차 하위 멤버가 동적 계산으로 태그를 지정하는 경우 상위 멤버도 동적 계산으로 태그를 지정해야 합니다.

그러나 상위 멤버에 하위 멤버가 하나 있고 상위 멤버가 동적 계산 멤버인 경우 1차 하위 멤버에 동적 계산 태그를 지정할 필요가 없습니다.

뱃치 계산의 동적 계산 종속성

멤버의 계산이 동적 계산 하위 멤버의 계산에 따라 달라지는 경우 Essbase는 상위 멤버를 계산하기 위해 뱃치 데이터베이스 계산 중에 먼저 하위 멤버를 계산해야 합니다. 따라서 정규 계산 시간이 줄어들지 않습니다. 이 요구 사항은 희소 및 밀집 차원의 멤버에 적용됩니다.

예를 들어, 아래 그림에서 Qtr1은 동적 계산 멤버입니다. 1월, 2월, 3월의 하위 항목은 동적이 아닙니다. 상위인 Year는 동적이 아닙니다. Essbase가 뱃치 계산 중 연도를 계산하는 경우 Qtr1을 포함하여 1차 하위 구성요소의 값을 통합해야 합니다. 따라서 Qtr1이 동적 계산인 경우에도 Qtr1을 계산하는 데 추가 시간이 걸립니다.

그림 21-2 Qtr1이 동적 계산 멤버인 연도 차원


이 이미지는 Qtr1이 1월, 2월 및 3월로 확장되고 Qtr1만 동적인 연도 차원을 보여줍니다.

계산 스크립트 및 동적 계산

동적 계산 멤버의 계산 스크립트 계산은 수행할 수 없습니다. 계산 스크립트를 사용하여 멤버를 명시적으로 계산하는 경우 해당 멤버에 동적 계산 태그를 지정하지 마십시오.

Essbase가 계산 스크립트에서 CALC ALL 또는 CALC DIM 문을 계산하는 경우 동적 계산 멤버의 계산을 무시합니다.

마찬가지로 멤버 세트 함수(예: @CHILDREN 또는 @SIBLINGS)를 사용하여 계산할 멤버 목록을 지정하는 경우 Essbase는 결과 목록에서 동적 계산 멤버의 계산을 무시합니다.

계산 스크립트에서 동적 계산 멤버를 명시적으로 지정하는 경우 계산 스크립트가 실패합니다.

예를 들어, 다음 계산 스크립트는 Qtr1이 동적 계산 멤버가 아닌 경우에만 유효합니다.

FIX (East, Colas)
   Qtr1;
ENDFIX

공식 및 동적으로 계산된 멤버

Essbase 아웃라인 공식에서 동적 계산 멤버를 사용할 수 있지만 계산 스크립트에서 공식 대상으로 사용할 수는 없습니다.

공식을 아웃라인에 적용할 때 공식에 동적으로 계산된 멤버를 포함할 수 있습니다. 예를 들어, Qtr1이 동적 계산 멤버인 경우 데이터베이스 아웃라인의 Qtr1에 다음 공식을 배치할 수 있습니다.

Qtr1 = Jan + Feb;

동적으로 계산된 멤버를 계산 스크립트에서 공식 계산의 대상으로 만들 수 없습니다. Essbase는 동적으로 계산된 값에 대한 메모리를 예약하지 않으며 값을 할당할 수 없습니다. 예를 들어, Qtr1이 동적 계산 멤버인 경우 계산 스크립트에 다음 공식을 포함하면 Essbase에 구문 오류가 표시됩니다.

Qtr1 = Jan + Feb;

Qtr1이 동적 계산 멤버이고 연도가 아닌 경우 계산 스크립트에서 다음 공식을 사용할 수 있습니다.

Year = Qtr1 + Qtr2;

이 공식은 Essbase가 동적으로 계산된 멤버에 값을 지정하지 않으므로 적합합니다.

주:

동적으로 계산된 멤버를 참조하는 경우 아웃라인 공식에서든 계산 스크립트에서든 Essbase는 정규 계산을 중단하여 동적 계산을 수행하므로 성능에 영향을 줍니다.

스크립트 및 동적으로 계산된 멤버

런타임 종속 동적 계산 멤버 공식이 있는 경우 과다 계산을 방지하려면 SET FRMLRTDYNAMIC OFF를 Essbase 계산 스크립트에 추가할 수 있습니다.

계산 스크립트의 선행 처리 단계에서 아웃라인에 밀집 동적 계산 멤버가 포함되어 있는지 여부를 확인할 수 없습니다. 스크립트에 런타임 종속 공식이 포함된 경우 Essbase는 스크립트가 실행될 때 모든 밀집 동적 계산 멤버를 계산해야 합니다. SET FRMLRTDYNAMIC OFF 계산 명령을 사용하면 이러한 동적 계산 멤버의 계산을 중지하여 성능이 향상됩니다.