MDX로 하위 큐브 작성(MDX)

하위 큐브는 기본 데이터의 필터링된 뷰를 나타내는 큐브의 하위 집합입니다. 큐브를 하위 큐브로 제한하여 쿼리 성능을 높일 수 있습니다.

하위 큐브를 정의하려면 이 항목에서 설명하는 바와 같이 CREATE SUBCUBE 문을 사용합니다.

CREATE SUBCUBE 구문

다음 구문을 사용하여 하위 큐브를 만듭니다.

CREATE SUBCUBE Subcube_Identifier AS Subcube_Expression

CREATE SUBCUBE 구문은 꽤 간단합니다. Subcube_Identifier 매개 변수는 하위 큐브가 기반을 두는 큐브를 식별합니다. Subcube_Expression 매개 변수는 하위 큐브가 될 큐브의 해당 부분을 선택합니다.

하위 큐브를 만들고 난 후 해당 하위 큐브는 세션을 닫거나 DROP SUBCUBE 문을 실행할 때까지는 모든 MDX 쿼리에 대한 컨텍스트가 됩니다.

하위 큐브가 포함하는 것

CREATE SUBCUBE 문은 간단하게 사용할 수 있지만 이 문 자체가 하위 큐브의 일부가 되는 멤버들을 모두 명시적으로 표시하지는 않습니다. 하위 큐브를 정의할 때 다음 규칙을 적용합니다.

  • 어떤 계층의 (All) 멤버를 포함하면 해당 계층의 모든 멤버가 포함됩니다.

  • 임의의 멤버를 포함하면 해당 멤버의 상위 항목과 하위 항목이 포함됩니다.

  • 어떤 계층의 모든 멤버를 포함하면 그 계층의 모든 멤버가 포함됩니다. 다른 계층의 멤버가 해당 수준(예를 들어 고객을 포함하지 않은 도시와 같이 균형이 맞지 않는 계층)의 멤버와 공존하지 않는 경우에는 제외됩니다.

  • 하위 큐브는 항상 큐브의 모든 (All) 멤버를 포함합니다.

또한 하위 큐브 내의 집계 값은 시각적으로 합쳐집니다. 예를 들어 하위 큐브는 USA, WA 및 OR을 포함합니다. WA 및 OR이 하위 큐브에 의해 정의된 유일한 주이므로 USA에 대한 집계 값은 {WA,OR}의 합계가 됩니다. 다른 모든 주는 무시합니다.

또한 하위 큐브 외부의 셀에 대한 명시적 참조는 전체 큐브의 컨텍스트에서 계산되는 셀 값을 반환합니다. 예를 들어 현재 연도로 제한되는 하위 큐브를 만듭니다. 그런 다음 ParallelPeriod 함수를 사용하여 현재 연도를 이전 연도와 비교합니다. 이전 연도 값은 하위 큐브 외부에 있지만 두 값의 차이가 반환됩니다.

마지막으로 원래 컨텍스트를 덮어쓰지 않은 경우 하위 SELECT에서 계산된 집합 함수는 하위 SELECT의 컨텍스트에서 계산됩니다. 컨텍스트를 덮어쓴 경우 집합 함수는 전체 큐브의 컨텍스트에서 계산됩니다.

CREATE SUBCUBE 예

다음 예에서는 예산 큐브를 4200 및 4300 계정으로만 한정하는 하위 큐브를 만드는 방법을 보여 줍니다.

CREATE SUBCUBE Budget AS SELECT {[Account].[Account].&[4200], [Account].[Account].&[4300] } ON 0 FROM Budget

해당 세션에 대한 하위 큐브를 만들면 이후의 쿼리는 전체 큐브가 아니라 그 하위 큐브에 대해서만 적용됩니다. 예를 들어 다음 쿼리를 실행하십시오. 이 쿼리는 4200 및 4300 계정의 멤버만 반환합니다.

SELECT [Account].[Account].Members ON 0, Measures.Members ON 1 FROM Budget