在 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 包含 USA
、WA
和 OR
。
USA
的匯總值將是 {WA,OR}
的總和,因為 WA
和 OR
是唯一由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