共用方式為


在 MDX 中建置 Subcube (MDX)

適用於: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Subcube 是 Cube 的子集,代表基礎數據的篩選檢視。 藉由將 Cube 限制為 Subcube,您可以改善查詢效能。

若要定義 subcube,您可以使用 CREATE SUBCUBE 語句,如本主題所述。

CREATE SUBCUBE 語法

使用下列語法來建立 Subcube:

CREATE SUBCUBE Subcube_Identifier AS Subcube_Expression  

CREATE SUBCUBE 語法相當簡單。 Subcube_Identifier 參數會識別 Subcube 所依據的 Cube。 Subcube_Expression 參數會選取將成為 subcube 的 Cube 部分

建立 subcube 之後,該 Subcube 會成為所有 MDX 查詢的內容,直到會話關閉或執行 DROP SUBCUBE 語句為止。

Subcube 包含的內容

雖然 CREATE SUBCUBE 語句相當簡單,但語句本身不會明確顯示成為 Subcube 一部分的所有成員。 在定義 Subcube 時,會套用下列規則:

  • 如果您包含階層 (All) 成員,則會包含該階層的每個成員。

  • 如果您包含任何成員,則會包含該成員的上階和子系。

  • 如果您從層級包含每個成員,則會包含階層中的所有成員。 如果這些成員與層級的成員不存在,則會排除來自其他階層的成員(例如,不包含客戶的城市等不平衡階層)。

  • Subcube 一律會包含 Cube 中每個 (All) 成員。

此外,Subcube 內的匯總值會以可視化方式加總。 例如,subcube 包含 USAWAORUSA 的匯總值將是 {WA,OR} 的總和,因為 WAOR 是唯一由subcube定義的狀態。 所有其他狀態都會被忽略。

此外,Subcube 外部儲存格的明確參考會傳回整個 Cube 內容中評估的儲存格值。 例如,您可以建立限制為目前年份的 Subcube。 然後使用 ParallelPeriod 函式來比較目前年份與前一年。 即使前一年的值位於 subcube 之外,值的差異也會傳回。

最後,如果未覆寫原始內容,則會在子選取的內容中評估在子選擇中評估的函式。 如果覆寫內容,則會在整個 Cube 的內容中評估 set 函式。

CREATE SUBCUBE 範例

下列範例會建立 Subcube,將預算 Cube 限制為只有帳戶 4200 和 4300:

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

建立會話的 Subcube 之後,任何後續查詢都會針對 Subcube,而不是整個 Cube。 例如,您可以執行下列查詢。 此查詢只會從帳戶 4200 和 4300 傳回成員。

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

另請參閱

在查詢中建立 Cube 內容 (MDX)
MDX 查詢基本概念 (Analysis Services)