2단계 계산

2단계 계산은 올바른 값을 생성하기 위해 두 번 계산해야 하는 멤버 공식에 적용할 수 있습니다. 계정 차원 멤버에 두 패스로 태그를 지정하여 일부 블록 저장영역 Essbase 애플리케이션의 성능을 향상시킬 수 있습니다.

주:

하이브리드 모드 큐브에 2단계 계산을 사용하지 마십시오. 해결 순서만 사용합니다.

일부 애플리케이션의 경우 계정 차원 멤버에 아웃라인에서 두 패스로 태그를 지정하여 성능을 향상시킬 수 있습니다. 그러나 데이터와 계산 요구의 조합에서는 계산 스크립트를 사용하여 정확성을 유지하기 위해 두 패스 태그 지정 대신 두 번 공식을 계산해야 할 수 있습니다.

가능한 경우 Essbase는 기본 계산과 동시에 블록 레벨에서 두 패스 공식을 계산합니다. 그러나 일부 상황에서는 추가 계산 패스가 필요합니다.

Essbase에서 두 패스 공식을 계산하는 방법은 시간 및 계정 차원의 밀집 희소 구성에 따라 달라집니다.

2단계의 계산 예

Profit%에 필요한 계산을 고려합니다.

Profit % = Profit % Sales

아래 테이블이 측정항목 및 연도가 밀집 차원인 데이터 블록의 하위 집합을 표시한다고 가정합니다. 측정항목에는 계정 태그가 지정되고 연도에는 시간으로 태그가 지정됩니다. AGGMISSG 구성 설정이 해제되어 있습니다(기본값).

데이터 값이 입력 셀에 로드되었습니다. Essbase는 1부터 7까지의 숫자가 나타나는 셀을 해당 순서로 계산합니다. 예를 들어, 수익 % -> 1월이 먼저 계산되고 Profit% -> Qtr1에는 다중 연결 경로가 있습니다.

표 34-5 2단계 계산 예: 데이터 및 계산 순서

측정 -> 연도 1월 Feb 3월 Qtr1

수익

75

50

120

5

영업

150

200

240

6

수익률

1

2

3

4, 7

주:

셀 계산 순서가 큐브 구성에 종속되는 방법에 대한 자세한 내용은 셀 계산 순서를 참조하십시오.

Essbase는 다음 계산 순서를 사용합니다.

  1. Essbase는 Profit % -> Jan, Profit % -> Feb, Profit % -> Mar 및 Profit % -> Qtr1에 대한 공식 Profit % Sales을 계산합니다(위의 1, 2, 3, 4).

  2. Essbase는 1월, 2월 및 3월(위 5, 6)에 대한 값을 추가하여 Profit -> Qtr1 및 Sales -> Qtr1을 계산합니다.

  3. Essbase는 이익 % -> 1월, 이익 % -> 2월 및 이익 % -> 3월(위 7개)에 대한 값을 추가하여 이익 % -> 분기1을 계산합니다. 이렇게 백분율을 추가하면 올바른 결과가 아닌 125% 값이 생성됩니다.

    표 34-6 2단계 계산 예: 잘못된 결과

    측정/연도 1월 Feb 3월 Qtr1
    수익 75 50 120 245 (5)
    Sales 150 200 240 590 (6)

    수익률

    50% (1)

    25%(2)

    50% (3)

    0%(4)

    125%(7)

  4. 아웃라인에서 Profit%를 두 패스로 태그하면 EssbaseProfit % Sales 공식을 사용하여 Profit% 값을 재계산하고 올바른 결과를 생성합니다.

    표 34-7 2단계 계산 예: 올바른 결과

    측정/연도 1월 Feb 3월 Qtr1
    수익 75 50 120 245 (5)
    Sales 150 200 240 590 (6)

    수익률

    50% (1)

    25%(2)

    50% (3)

    0%(4)

    125%(7)

    42% (8)

다중 계산 가공 패스에 대한 자세한 내용은 계산 가공 패스를 참조하십시오.

2단계 및 지능형 계산의 상호 작용

블록 저장영역 애플리케이션에서 Intelligent Calculation 및 두 패스 계산을 사용하는 경우 큐브의 구성과 일치하는 시나리오를 사용하여 Essbase가 두 패스 공식을 정확하게 계산하도록 합니다.

주:

하이브리드 모드 큐브에 2단계 계산을 사용하지 마십시오. 해결 순서만 사용합니다.

시나리오 A: 두 패스 태그

이 시나리오에서는 아웃라인에 공식을 배치하고, 필요에 따라 최적의 성능을 위해 특정 공식을 두 패스로 태그 지정합니다.

2패스 공식에 대한 추가 계산 통과 없음

Essbase는 데이터 블록을 계산하는 동안 두 패스 공식을 계산하므로 Essbase는 추가 계산 패스를 수행할 필요가 없습니다.

클린으로 표시된 모든 데이터 블록

계산 후에는 지능형 계산을 위해 모든 데이터 블록이 클린으로 표시됩니다.

아웃라인에서 멤버 공식에 2패스로 태그를 지정하면 Essbase는 각 데이터 블록이 계산되는 동안 2패스 계산을 수행합니다. 그러나 계산 스크립트에서 공식을 반복하는 경우 Essbase는 데이터 블록을 읽고 메모리에 기록하여 공식을 재계산해야 합니다.

시나리오 B: 계산 스크립트

이 시나리오에서는 최상의 성능을 위해 공식 계산을 수행하는 계산 스크립트를 생성합니다.

2패스 공식에 대한 추가 계산 통과

Essbase는 큐브를 계산한 다음 추가 계산 패스를 수행하여 두 패스 공식을 계산합니다. 첫 번째 계산 후 모든 데이터 블록이 클린으로 표시되더라도 Essbase는 두 패스 공식과 관련된 블록의 클린 상태를 무시하고 이러한 블록을 재계산합니다.

2단계 공식에 대한 데이터 블록이 클린으로 표시되지 않음

첫 번째 계산 후 Essbase는 모든 데이터 블록을 클린으로 표시했습니다. 두 번째 계산 패스에서 Essbase는 두 패스 공식에 필요한 데이터 블록을 재계산합니다. 그러나 두 번째 계산은 부분 계산이므로 Essbase는 재계산된 블록을 클린으로 표시하지 않습니다. 지능형 계산을 설정하여 재계산하는 경우 이러한 데이터 블록이 불필요하게 재계산될 수 있습니다.

큐브 구성에서 Essbase가 시나리오 B를 사용하도록 허용하는 경우 계산 스크립트를 사용하여 두 패스 공식 계산을 수행하는 것이 좋습니다. 계산 스크립트를 사용하는 경우에도 Essbase는 데이터베이스를 통해 추가 계산 패스를 수행합니다. 그러나 계산 후 Essbase에서 모든 데이터 블록을 클린으로 표시했는지 확인할 수 있습니다. 두 패스 및 지능형 계산에 대한 계산 스크립트를 참조하십시오.

2단계 계산 태그 또는 계산 스크립트 방법 선택

계정 멤버에 두 패스로 태그를 지정하면 성능이 향상될 수 있지만 일부 응용 프로그램에서는 이 방법을 사용할 수 없습니다. 이러한 자격을 검사하여 두 패스 태그를 적용해야 하는지 또는 최상의 성능과 정확성을 위해 두 번 계산을 수행하는 계산 스크립트를 생성해야 하는지 여부를 확인합니다.

  • 멤버가 계정으로 태그 지정된 차원에 있는 경우 멤버에 두 패스로 태그를 지정할 수 있습니다. 데이터베이스에서 기본 계산을 수행하는 경우 Essbase는 계정으로 태그 지정된 차원에 있는 경우 2단계로 태그 지정된 모든 공식을 자동으로 재계산합니다.

  • 멤버가 차원의 동적 계산 멤버인 경우 멤버에 두 패스로 태그를 지정할 수 있습니다.

  • 두 패스 태그가 성능상의 이점을 제공하더라도 정확한 결과를 얻으려면 계산 스크립트를 사용하여 두 패스 공식을 계산해야 할 수 있습니다. 두 패스 및 지능형 계산에 대한 계산 스크립트를 참조하십시오.

  • 데이터베이스 구성에서 Essbase가 시나리오 A를 사용하고 공식이 다른 데이터 블록의 값을 참조하는 경우 계산 스크립트를 사용하여 공식을 두 번 계산해야 합니다.

  • 데이터베이스 구성에서 Essbase가 시나리오 B를 사용하는 경우 계산 스크립트를 사용하여 두 패스 공식을 계산할 수 있습니다.

2단계 기본 계산

큐브 설정을 사용하여 기본 계산에 대해 두 패스를 사용으로 설정할 수 있습니다. 두 패스가 사용으로 설정된 큐브에서 기본 계산을 수행하는 경우 Essbase는 계정으로 태그 지정된 차원에서 두 패스로 태그 지정된 공식을 자동으로 계산하려고 시도합니다.

주:

하이브리드 모드 큐브에 2단계 계산을 사용하지 마십시오. 해결 순서만 사용합니다.

다음 항목을 참조하십시오.

기본 계산을 수행하려면 계산 실행 MaxL 문을 사용합니다.

두 패스 계산을 사용으로 설정하려면 alter database MaxL 문을 사용할 수 있습니다.

2단계 및 지능형 계산을 위한 계산 스크립트

Intelligent Calculation을 사용하여 두 패스 계산을 수행하기 위해 Essbase 계산 스크립트를 설계할 때 SET UPDATECALC, SET CLEARUPDATESTATUS 및 CALC TWOPASS를 사용하여 계산을 최적화하는 방법을 알아봅니다.

주:

하이브리드 모드 큐브에 2단계 계산을 사용하지 마십시오. 해결 순서만 사용합니다.

아웃라인에서 두 패스 공식을 사용하는 경우 다음 지침에 따라 계산을 가능한 정확하고 빠르게 수행합니다.

  • 두 패스 공식을 재계산하는 명령 앞에 SET UPDATECALC OFF 명령을 추가하여 Intelligent Calculation을 사용 안함으로 설정합니다. Intelligent Calculation이 사용으로 설정된 경우(기본값) Essbase는 클린으로 표시되지 않은 데이터 블록만 계산하지만 Intelligent Calculation이 사용으로 설정된 기본 계산을 수행하는 경우 모든 데이터 블록이 클린으로 표시되므로 Essbase는 두 패스 공식 재계산을 수행하지 않습니다.

  • Essbase는 계산 스크립트에서 2패스 공식을 자동으로 재계산하지 않으므로 CALC TWOPASS 명령을 사용해야 합니다.

  • CALC ALL의 기본 계산을 변경했으며 지능형 계산이 사용으로 설정된 경우 첫 번째 계산 후 데이터 블록이 클린으로 표시되지 않을 수 있습니다. 블록 스토리지 큐브에 대한 지능형 계산을 참조하십시오.

데이터베이스의 첫 번째 전체 계산을 수행할 때 지능형 계산의 성능 이점을 얻으려면 다음 일련의 예에 표시된 방법 중 하나를 사용합니다. 가장 좋은 방법은 큐브의 계산 요구 사항 및 개요 구조에 따라 달라집니다.

다음 예제에서는 아웃라인에 계정 태그가 지정된 차원이 있고 밀집 차원이라고 가정합니다. 각 제품의 판매를 모든 제품의 판매 비율로 계산하려고 합니다. 이 공식에서 차원을 계산한다고 가정합니다.

Sales % Sales -> Product

Essbase가 각 제품에 대한 데이터 블록을 계산할 때 판매 -> 제품 값을 아직 계산하지 않았으므로 총 판매의 퍼센트로 표시된 각 제품의 판매 결과가 잘못되었습니다.

큰 인덱스를 사용한 지능형 계산

큐브 인덱스가 크고 지능형 계산을 사용하려는 경우 최상의 성능을 위해 다음 옵션 중 하나를 사용할 수 있습니다.

계산 스크립트 옵션

이 모델을 사용하여 지능형 계산이 사용으로 설정된 상태에서 전체 계산을 수행하는 계산 스크립트를 생성합니다.

SET UPDATECALC ON;

CALC ALL;
SET UPDATECALC OFF;
SET CLEARUPDATESTATUS AFTER;
"Share of Sales" = Sales % Sales -> Product;

계산 스크립트 및 2단계 옵션

멤버에 두 패스로 태그를 지정하고 계산 스크립트를 사용하여 먼저 전체 큐브를 계산한 다음 두 패스 멤버를 계산합니다.

  1. 아웃라인에 공식을 배치하고 이를 두 패스로 태그 지정합니다.

  2. 계정으로 태그 지정된 차원(예: 영업 공유)의 해당 멤버에 공식을 배치합니다.

  3. 전체 계산을 수행한 다음 두 패스 계산을 수행하는 계산 스크립트를 생성합니다.

    SET UPDATECALC ON;
    CALC ALL;
    SET UPDATECALC OFF;
    SET CLEARUPDATESTATUS AFTER;
    CALC TWOPASS;

클라이언트 및 계산 스크립트 옵션

클라이언트에서 기본 계산을 수행한 다음 계산 스크립트를 사용하여 공식 계산을 수행하려면 다음을 수행합니다.

  1. 이 기본값이 변경된 경우 지능형 계산을 사용으로 설정합니다.

  2. 전체 계산을 수행합니다.

  3. 이 예와 유사한 계산 스크립트를 사용하여 지능형 계산을 사용 안함으로 설정하고 공식을 계산합니다.

    SET UPDATECALC OFF;
    SET CLEARUPDATESTATUS AFTER;
    "Share of Sales" = Sales % Sales -> Product;

    또는

    SET UPDATECALC OFF;
    SET CLEARUPDATESTATUS AFTER;
    CALC TWOPASS;

위의 모든 예제 옵션은 다음 작업을 수행합니다.

  1. 지능형 계산을 사용으로 설정합니다.

  2. 전체 큐브를 계산하고 데이터 블록을 clean으로 표시합니다.

  3. 지능형 계산을 사용 안함으로 설정합니다.

  4. 이 계산이 큐브의 부분 계산인 경우에도 재계산된 블록을 클린으로 표시합니다. SET CLEARUPDATESTATUS AFTER 명령을 사용하지 않을 경우 Essbase는 전체 계산 후에만 데이터 블록을 클린으로 표시합니다.

  5. Essbase는 큐브를 순환하여 관련 멤버에 대한 공식만 계산하거나(이 예에서는 Sales 공유), 아웃라인에서 2패스로 태그가 지정된 모든 공식을 계산합니다.

예: 작은 인덱스가 있는 지능형 계산

큐브 인덱스가 작은 경우 지능형 계산을 사용하려면 다음을 수행합니다.

  1. 큐브를 계산할 계산 스크립트를 생성하지만 계산된 데이터 블록을 클린으로 표시하지 않도록 Essbase에 지시합니다.

  2. 모든 데이터 블록을 clean으로 표시하고 데이터 블록을 재계산하지 않습니다.

    SET CLEARUPDATESTATUS OFF;
    CALC ALL;
    CALC TWOPASS;
    SET CLEARUPDATESTATUS ONLY;
    CALC ALL;
    1. SET CLEARUPDATESTATUS OFF는 계산된 데이터 블록을 클린으로 표시하지 않도록 Essbase에 지시합니다.

    2. 첫번째 CALC ALL을 사용하면 Essbase가 큐브를 순환하여 모든 더티 데이터 블록을 계산합니다. Essbase는 계산된 블록을 클린으로 표시하지 않습니다.

      Essbase는 두 패스로 태그 지정된 공식을 자동으로 재계산하지 않습니다.

    3. CALC TWOPASS를 사용하면 Essbase가 큐브를 순환하여 계정 차원의 두 패스 공식을 재계산합니다. 필요한 데이터 블록이 이전 CALC ALL에 의해 클린으로 표시되지 않았으므로 Essbase에서 공식을 재계산합니다. Essbase는 재계산된 데이터 블록을 클린으로 표시하지 않습니다.

    4. SET CLEARUPDATESTATUS ONLY는 데이터 블록을 클린으로 표시하지만 데이터 블록을 계산하지 않도록 Essbase에 지시합니다. 이 명령은 계산을 사용 안함으로 설정합니다.

    5. 마지막 CALC ALL을 사용하면 Essbase가 큐브를 순환하고 모든 데이터 블록을 클린으로 표시합니다. Essbase는 데이터 블록을 계산하지 않습니다.

예: 2단계 공식에 대해 지능형 계산이 해제됨

2단계 공식에 대해 지능형 계산을 해제하려면 다음 태스크를 수행하는 계산 스크립트를 생성합니다.

  • 지능형 계산을 사용 안함으로 설정합니다.

  • 전체 계산을 수행합니다.

  • 다음 두 패스 공식을 반복합니다.

    SET UPDATECALC OFF;
    CALC ALL;
    "Share of Sales" = Sales % Sales -> Product;