錯誤 (查詢最佳化工具產生太多 subcubes) 和 MDX 查詢在 SSAS 多維實例中失敗

本文可協助您解決當您在 Microsoft SQL Server Analysis Services (SSAS) 多維實例上執行多維度運算式 (MDX) 查詢時所發生的問題。

適用于:  SQL Server 2012 analysis services,SQL Server 2014 analysis services,SQL Server 2016 analysis services,SQL Server 2017 analysis services Windows,SQL Server 2019 Analysis 服務 Windows
原始 KB 編號:   4533057

徵狀

當您在 Microsoft SQL Server Analysis Services () SSAS (的 mdx) 查詢上執行多維度運算式時,mdx 查詢會失敗並傳回下列錯誤訊息:

查詢最佳化工具在查詢計劃中產生太多 subcubes

如果下列條件成立,就會發生此錯誤:

  • 在單一階層層級或屬性上定義過多的導出成員。
  • 許多欄位或屬性成員會放在每個座標軸上。 或者,許多欄位會放在 Microsoft Excel 中 PivotTable 的列或資料行上。
  • 所選階層的所有成員都會包含在座標軸中。
  • 在 [Excel] PivotTable 中會開啟總計和小計。

原因

SSAS 公式引擎 (FE) 必須產生儲存體引擎 (的所有相關 MDX 集 SE) 查詢子集合或 Sonar 子多維資料集。 每個查詢所能產生的 SE 查詢 subcubes 數目有限制。 這是原本設計的做法。 目前在查詢計劃中,當 FE 對查詢產生太多查詢 subcubes 時,就會發生錯誤。

解決方案

若要避免此錯誤,請遵循下列最佳作法指導方針:

  • 在 [Excel PivotTable 中,關閉 [總計] 和 [小計]。
  • 從 Excel UI 中 PivotTable 的****列或欄 座標軸移除階層。
  • 請勿定義過多的導出成員 (例如,維度階層上超過 500) 。 相反地,在維度階層中有一般成員,並使用 MDX 範圍指派運算式 (又稱為計算儲存格) 取代計算所得成員的運算式。