MDX로 하위 큐브 작성(MDX)Building Subcubes in MDX (MDX)

적용 대상: yesSQL Server Analysis Services 없음Azure Analysis ServicesAPPLIES TO: yesSQL Server Analysis Services noAzure Analysis Services

하위 큐브는 기본 데이터의 필터링된 뷰를 나타내는 큐브의 하위 집합입니다.A subcube is a subset of a cube on representing a filtered view of the underlying data. 큐브를 하위 큐브로 제한하여 쿼리 성능을 높일 수 있습니다.By limiting the cube to a subcube, you can improve query performance.

하위 큐브를 정의하려면 이 항목에서 설명하는 바와 같이 CREATE SUBCUBE 문을 사용합니다.To define a subcube, you use the CREATE SUBCUBE statement, as described in this topic.


다음 구문을 사용하여 하위 큐브를 만듭니다.Use the following syntax to create a subcube:

CREATE SUBCUBE Subcube_Identifier AS Subcube_Expression  

CREATE SUBCUBE 구문은 꽤 간단합니다.The CREATE SUBCUBE syntax is fairly simple. Subcube_Identifier 매개 변수는 하위 큐브의 기반이 되는 큐브를 식별합니다.The Subcube_Identifier parameter identifies the cube on which the subcube will be based. Subcube_Expression 매개 변수는 하위 큐브가 될 큐브의 해당 부분을 선택합니다.The Subcube_Expression parameter selects the part of the cube that will become the subcube

하위 큐브를 만들고 난 후 해당 하위 큐브는 세션을 닫거나 DROP SUBCUBE 문을 실행할 때까지는 모든 MDX 쿼리에 대한 컨텍스트가 됩니다.After you create a subcube, that subcube becomes the context for all MDX queries until either the session closes or you run the DROP SUBCUBE statement.

하위 큐브가 포함하는 것What a Subcube Contains

CREATE SUBCUBE 문은 간단하게 사용할 수 있지만 이 문 자체가 하위 큐브의 일부가 되는 멤버들을 모두 명시적으로 표시하지는 않습니다.Although the CREATE SUBCUBE statement is fairly simple to use, the statement itself does not explicitly show all the members that become part of a subcube. 하위 큐브를 정의할 때 다음 규칙을 적용합니다.In defining a subcube, the following rules apply:

  • 어떤 계층의 (All) 멤버를 포함하면 해당 계층의 모든 멤버가 포함됩니다.If you include the (All) member of a hierarchy, you include every member of that hierarchy.

  • 임의의 멤버를 포함하면 해당 멤버의 상위 항목과 하위 항목이 포함됩니다.If you include any member, you include that member's ascendants and descendants.

  • 어떤 계층의 모든 멤버를 포함하면 그 계층의 모든 멤버가 포함됩니다.If you include every member from a level, you include all members from the hierarchy. 다른 계층의 멤버가 해당 수준(예를 들어 고객을 포함하지 않은 도시와 같이 균형이 맞지 않는 계층)의 멤버와 공존하지 않는 경우에는 제외됩니다.Members from other hierarchies will be excluded if those members do not exist with members from the level (for example, an unbalanced hierarchy such as a city that does not contain customers).

  • 하위 큐브는 항상 큐브의 모든 (All) 멤버를 포함합니다.A subcube will always contain every (All) member from the cube.

또한 하위 큐브 내의 집계 값은 시각적으로 합쳐집니다.Additionally, aggregate values within the subcube are visually totaled. 예를 들어 하위 큐브는 USA, WAOR을 포함합니다.For example, a subcube contains USA, WA, and OR. USA{WA,OR} 이 하위 큐브에 의해 정의된 유일한 주이므로 WA 에 대한 집계 값은 OR 의 합계가 됩니다.The aggregate value for USA will be the sum of {WA,OR} because WA and OR are the only states defined by the subcube. 다른 모든 주는 무시합니다.All other states will be ignored.

또한 하위 큐브 외부의 셀에 대한 명시적 참조는 전체 큐브의 컨텍스트에서 계산되는 셀 값을 반환합니다.Also, explicit references to cells outside the subcube return cell values that are evaluated in the context of the whole cube. 예를 들어 현재 연도로 제한되는 하위 큐브를 만듭니다.For example, you create a subcube that is limited to the current year. 그런 다음 ParallelPeriod 함수를 사용하여 현재 연도를 이전 연도와 비교합니다.You then use the ParallelPeriod function to compare the current year to the previous year. 값의 차이 이전 연도 값은 하위 큐브 외부의 경우에 반환 됩니다.The difference in values will be returned even though the previous year's value lies outside the subcube.

마지막으로 원래 컨텍스트를 덮어쓰지 않은 경우 하위 SELECT에서 계산된 집합 함수는 하위 SELECT의 컨텍스트에서 계산됩니다.Finally, if the original context is not overwritten, set functions evaluated in a subselect are evaluated in the context of the subselect. 컨텍스트를 덮어쓴 경우 집합 함수는 전체 큐브의 컨텍스트에서 계산됩니다.If the context is overwritten, set functions are evaluated in the context of the whole cube.


다음 예에서는 예산 큐브를 4200 및 4300 계정으로만 한정하는 하위 큐브를 만드는 방법을 보여 줍니다.The following example creates a subcube that restricts the Budget cube to only accounts 4200 and 4300:

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

해당 세션에 대한 하위 큐브를 만들면 이후의 쿼리는 전체 큐브가 아니라 그 하위 큐브에 대해서만 적용됩니다.Having created a subcube for the session, any subsequent queries will be against the subcube, not the whole cube. 예를 들어 다음 쿼리를 실행하십시오.For example, you run the following query. 이 쿼리는 4200 및 4300 계정의 멤버만 반환합니다.This query will only return members from accounts 4200 and 4300.

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

관련 항목See Also

쿼리에 큐브 컨텍스트 설정(MDX) Establishing Cube Context in a Query (MDX)
MDX 쿼리 기본 사항(Analysis Services)MDX Query Fundamentals (Analysis Services)