사용자정의 계산을 최적화하도록 빈 튜플 건너뛰기

데이터 세트가 매우 희소할 수 있으며 빈 결과 세트를 계산하면 성능이 눈에 띄게 저하될 수 있습니다. 빈 결과 세트를 계산하지 않으려면 사용자정의 계산 공식에서 NONEMPTYTUPLE 속성 절을 사용할 수 있습니다. NONEMPTYTUPLE을 사용하면 시스템에서 계산하려고 시도하는 위치가 제한됩니다. 이렇게 설정하려면 튜플이 비어 있지 않은 경우에만 계산되도록 튜플을 정의합니다. 그런 다음 튜플에 적용할 간단한 수식 연산을 정의합니다.

구문

NONEMPTYTUPLE 사용을 위한 구문은 다음과 같습니다.

tuple := NONEMPTYTUPLE (nonempty_member_list) numeric_value_expression;

설명:

  • tuple: 멤버가 하나 이상인 MDX 지정으로, 각 멤버의 차원은 서로 다릅니다.

  • NONEMPTYTUPLE: 계산 성능을 최적화하는 데 사용할 수 있는 등록정보(선택사항)입니다. 사용한 경우 nonempty_member_list이 포함된 이 리터럴 속성을 따라야 합니다.

  • nonempty_member_list: 서로 다른 차원의 멤버 이름이 하나 이상 있으며, 쉼표로 구분됩니다. 튜플은 numeric_value_expression에 있어야 합니다.

  • numeric_value_expression: 숫자 또는 산술 연산 등의 간단한 MDX 숫자 값 표현식입니다.

    표현식은 방정식의 오른쪽에 있어야 합니다. 산술 연산자만 사용해야 합니다. AND, OR 또는 IF와 같은 비산술 연산자를 사용하는 경우 오류가 반환됩니다.

예:

[UnitCost] := NONEMPTYTUPLE ([TotalExpense], [NetBalance]) ([TotalExpense], [NetBalance]) / ([Units], [CostPool]);

이 예는 다음을 나타냅니다.

  1. 튜플 ([TotalExpense], [NetBalance])를 확인합니다.

  2. 튜플 또는 교차점이 비어 있지 않으면(즉, 실제 값을 포함하면) 다음 연산을 수행합니다.

    튜플 ([TotalExpense], [NetBalance])를 가져오고 튜플 ([Units], [CostPool])로 나누어 UnitCost를 산출합니다.

  3. 튜플이 비어 있으면 건너뛰고 다음 인스턴스를 평가합니다.

사용 규칙

튜플은 서로 다른 차원 세트 일부의 멤버로 구성된 조합입니다. 예는 다음과 같습니다.

([product2], [account5], customer3])

([myactivity], [yourdepartment])

Profitability and Cost Management 사용자정의 계산 규칙의 공식에 NONEMPTYTUPLE을 추가하기 위한 요구사항은 다음과 같습니다. 여기서 A, B 및 C는 튜플을 나타냅니다.

  • 튜플에 값이 있을 때만 NONEMPTYTUPLE을 사용할 수 있습니다. 그러지 않으면 결과를 예상할 수 없습니다. 다음과 같이 가정합니다.

    • A=B+C -- B 또는 C에서 NONEMPTYTUPLE을 사용할 수 없습니다. B 또는 C가 누락되어 있으면 결과는 없음이며, 이는 부정확합니다.

      Note:

      NONEMPTYTUPLE을 사용하여 A=B+C를 계산하려면 다음 두 가지 규칙을 사용합니다.

      • 규칙 1: NONEMPTYTUPLE이 B에 있으면 A=A+B

      • 규칙 2: NONEMPTYTUPLE이 C에 있으면 A=A+C(또는 A=A-C)

      이 경우 B 값이 누락되지 않은 경우 항상 A에 추가되고, C 값이 누락되지 않은 경우 항상 A에 추가됩니다.

    • A=B-C -- B 또는 C에서 NONEMPTYTUPLE을 사용할 수 없습니다. B 또는 C가 누락된 경우 결과는 없음이고, 이는 앞에서 설명한 두 가지 규칙을 사용하는 경우를 제외하고 부정확한 결과입니다.

  • 튜플 누락 여부와 관계없이 결과가 동일할 때 NONEMPTYTUPLE을 사용할 수 있습니다. 다음과 같이 가정합니다.

    • A=B -- B에서 NONEMPTYTUPLE을 사용할 수 있습니다.

    • A=B*C -- B 또는 C에서 NONEMPTYTUPLE을 사용할 수 있습니다.

    • A=B/C -- B 또는 C에서 NONEMPTYTUPLE을 사용할 수 있습니다.

요약하자면, 곱셈 또는 나눗셈 연산에서 NONEMPTYTUPLE을 안전하게 사용할 수 있습니다. 덧셈이나 뺄셈은 각각의 경우에 대해 사용을 평가해야만 예기치 않은 결과를 방지할 수 있습니다.

Note:

사용자정의 계산 규칙 작성에 대한 내용은 사용자정의 계산 규칙의 공식 구문을 참조하십시오. 비어 있지 않은 튜플 사용에 대한 내용은 Enterprise Profitability and Cost Management에 관한 자주 묻는 질문(FAQ)에서 "Enterprise Profitability and Cost Management의 NET(비어 있지 않은 튜플)를 사용으로 설정하는 방법은 무엇입니까?"를 참조하십시오.