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