계산 시뮬레이션을 통해 계산 시간 예측

Essbase 블록 저장영역 큐브의 모델에서 계산을 시뮬레이션하여 실제 계산에 걸리는 시간을 추정할 수 있습니다. 이렇게 하려면 SET MSG ONLY 및 SET NOTICE HIGH를 사용하여 계산 스크립트를 실행하고 완료 시간을 기록한 다음 추정합니다.

계산 스크립트에서만 SET MSG를 사용하여 계산을 시뮬레이션할 수 있습니다. 시뮬레이션된 계산은 동일한 데이터 및 아웃라인을 기반으로 하는 실제 계산의 성능을 분석하는 데 도움이 되는 결과를 생성합니다.

SET NOTICE HIGH와 같은 명령을 사용하여 시뮬레이션된 계산을 실행하면 각 희소 차원이 완료되는 데 걸리는 상대 시간을 표시할 수 있습니다. 그런 다음 시뮬레이션된 계산을 실행하는 데 걸리는 시간은 실제 계산을 실행하는 데 걸리는 시간에 비례하기 때문에 하나 이상의 차원에서 실제 계산을 수행하여 전체 계산에 걸리는 시간을 추정할 수 있습니다.

예를 들어, 계산이 오전 9:50:00에 시작되고 첫 번째 알림이 오전 9:50:10에 시간 기록되고 두 번째 알림이 오전 9:50:20에 시간 기록되는 경우 계산의 각 부분이 10초가 걸린다는 것을 알 수 있습니다. 그런 다음 첫 번째 부분에서만 실제 계산을 실행하고 실행하는 데 30초가 걸렸음을 알면 다른 부분도 30초가 걸린다는 것을 알 수 있습니다. 총 두 개의 메시지가 있는 경우 실제 계산에 약 60초(20/10 * 30 = 60초)가 걸립니다.

다음 항목에서는 시뮬레이션된 계산을 수행하는 방법 및 시뮬레이션된 계산을 사용하여 계산 시간을 추정하는 방법을 알아봅니다.

계산 시뮬레이트

SET MSG ONLY 및 SET NOTICE HIGH 명령이 포함된 계산 스크립트를 실행하고 애플리케이션 로그에서 시간 기록을 기록하여 Essbase 블록 저장영역 큐브의 모델에서 계산을 시뮬레이션합니다.

계산 시간을 추정하려면 실제 큐브를 기반으로 하는 데이터 모델에 대해 시뮬레이션된 계산을 수행해야 합니다. 그런 다음 애플리케이션 로그를 확인하여 계산에 걸린 시간을 확인할 수 있습니다.

애플리케이션 로그를 찾을 위치를 알아보려면 Essbase 플랫폼의 환경 위치를 참조하십시오.

시뮬레이션된 계산을 수행하려면

  1. 정보를 원하는 모든 차원과 모든 세부정보 레벨을 사용하는 데이터 모델을 생성합니다.
  2. 모든 데이터를 로드합니다. 이 절차에서는 큐브에 로드된 데이터만 계산합니다.
  3. 다음 항목을 사용하여 계산 스크립트를 생성합니다.
    SET MSG ONLY;
    SET NOTICE HIGH;
    CALC ALL;

    밀집 치수에서 동적 계산을 사용하는 경우 계산해야 하는 특정 치수(예: CALC DIM EAST)로 CALC ALL 명령을 대체합니다.

    주:

    스크립트를 검증하려고 하면 Essbase에서 오류를 보고합니다. 오류를 무시합니다.

  4. 스크립트를 실행합니다.
  5. 애플리케이션 로그에서 첫번째 희소 계산 메시지를 찾아 메시지의 시간을 기록합니다.
  6. 이후의 각 메시지에 대한 시간을 기록합니다.
  7. 동적으로 계산되지 않는 모델의 밀집 치수를 계산합니다.
    CALC DIM (DENSE_DIM1, DENSE_DIM2, …);
  8. 모델의 희소 치수를 계산합니다.
    CALC DIM (SPARSEDIM1, SPARSEDIM2, …);
  9. 통지가 발생할 간격을 예상한 다음 희소 계산 결과에 대해 확인합니다. 그런 다음 계산 시간을 예측할 수 있습니다.

계산 명령을 참조합니다.

산정 계산 시간

시뮬레이션된 계산 결과를 기록하고 이를 사용하여 Essbase 블록 저장영역 큐브에 대한 실제 계산 시간을 추정합니다.

총 계산 시간을 예측하려면 다음을 수행합니다.

  1. SET NOTICE HIGH에 의해 생성된 응용 프로그램 로그 메시지 사이의 모든 간격 시간을 기록합니다.

    (아래 표 참조).

  2. 다음 계산을 사용하여 실제 계산 시간을 예측합니다.

    시뮬레이션된 계산에 필요한 총 시간으로, 첫 번째 시뮬레이션된 계산 통지 간격으로 나눈 값에 첫 번째 실제 계산 시간 간격을 곱합니다.

    표 34-1 로그 메시지 간 샘플 간격

    계산 통지 번호 시뮬레이션된 계산 시간 간격(초) 희소 차원 계산 간격(초)

    1

    7

    45

    2

    5

     

    3

    6

     

    4

    3

     

    5

    4

     

    6

    2

     

    7

    6

     

    8

    4

     

    9

    3

     

    10

    3

     

    총 계산 시간

    43

     

    이 예에서는 43/7 * 45 = 276.4초이므로 실제 계산에 276.4초가 걸립니다.

추정 정확도에 영향을 주는 계수

Essbase 블록 저장영역 큐브의 시뮬레이션된 계산을 기반으로 하는 추정 정확도는 블록 밀도 및 아웃라인 구조와 같은 요인에 의해 영향을 받을 수 있습니다.

변형을 유발하는 주요 요소가 없는 경우 시뮬레이션된 계산은 약 5%까지 정확한 시간을 반환해야 합니다.

이러한 요소가 존재하는 경우 이 예측 기법은 Essbase가 시뮬레이션된 계산의 30%–40%에 도달할 때(SET NOTICE HIGH에 의해 생성된 메시지의 30%–40%) 계산 시간을 보다 면밀히 예측합니다.

영향 체인으로 인한 변동

SET MSG ONLY를 계산 시간 예측 기법으로 사용하면 이후의 CALCNOTICE 간격에 대해 검증해야 합니다. 이 예측 기법의 결과는 다음과 같은 영향 체인에 따라 다릅니다.

  1. 블록은 실제 통합 프로세스를 통해 블록 밀도가 다르므로

  2. 따라서 Essbase가 디스크에 블록을 기록하는 속도가 서로 다릅니다.

  3. 따라서 캐시에서 블록이 처리되는 속도가 서로 다릅니다.

  4. 실제 결과는 예측된 계산 시간과 다를 수 있습니다.

아웃라인 구조로 인한 변동

실제 결과를 예측 결과와 크게 다를 수 있는 또 다른 요소는 아웃라인 구조입니다. CALCNOTICE 간격에 따라 계산은 아웃라인 전체에서 균등하게 균형 잡힌 처리 시간을 가정합니다. 이 잔액을 비대칭시킬 수 있는 요소에는 다음과 같은 상황이 포함됩니다.

  • 모델에는 다른 희소 치수와 관련하여 큰 희소 치수가 하나 또는 두 개 포함되어 있습니다.

  • 차원이 클수록 멤버 구성이 있어 여러 공유 롤업이 발생합니다.

결과에 따라 아웃라인 변경

Essbase 블록 저장영역 큐브 모델의 시뮬레이션된 계산을 추정하고 분석한 후에는 아웃라인을 변경하여 성능을 향상시킬 수 있습니다.

아웃라인의 맨 위에서 맨 아래로 희소 차원을 정렬하여 상위 블록의 백분율 증가를 가장 적게 생성합니다.

  • 전체 모델 로드 후 레벨 0 블록: 100,000

  • 희소 차원만 통합한 후 상위 레벨 블록 1: 1,000,000

  • 희소 차원만 통합한 후 상위 레벨 블록 2: 3,000,000

  • 희소 차원만 통합한 후 상위 레벨 블록 3: 10,000,000

  • 희소 차원만 통합한 후 상위 레벨 블록 4: 300,000

  • 희소 차원만 통합한 후 상위 레벨 블록 5: 5,700,000

예:

  • #4 (멤버 = 10,000, 4 레벨)

  • #1(멤버 = 500, 2 레벨)

  • #2(멤버 = 100, 4 레벨)

  • #5 (멤버 = 10,000, 4 레벨)

  • #3 (멤버 = 20, 플랫)

시뮬레이션된 계산을 사용하여 상한 블록 수를 생성합니다. 이러한 숫자는 위의 항목 옆에 명시된 실제 치수 크기에도 불구하고 정확할 수 있습니다.

주의:

멤버의 가장 큰 수는 항상 좋은 예측자가 아닙니다.

하이브리드 모드를 사용하는 것이 좋습니다. 하이브리드 모드 큐브에서는 차원 순서를 재배열하는 대신 해결 순서를 쉽게 사용자정의할 수 있습니다.