共用方式為


錯誤 (查詢優化器產生太多子資料庫)和 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 Services Windows
原始 KB 編號: 4533057

徵兆

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

查詢優化器在查詢計劃中產生太多子庫

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

  • 在單一階層層級或屬性上定義太多導出成員。
  • 許多欄位或屬性成員都會放在每個軸上。 或者,許多欄位會放在 Microsoft Excel 中數據透視表的數據列或數據行上。
  • 選取階層的所有成員都會包含在座標軸中。
  • Excel 數據透視表中會開啟總計和小計。

原因

SSAS 公式引擎 (FE) 必須針對儲存引擎 (SE) 查詢 Subcube 或 Sonar Subcube 產生所有相關的 MDX 集合。 每個可產生之查詢的 SE 查詢子集數目有一個限制。 這是原廠設定。 目前在查詢計劃中,如果FE為查詢產生太多查詢子集,就會發生錯誤。

解決方法

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

  • 在 Excel 數據透視表中,關閉總計和小計。
  • Excel UI 中數據透視表的 [資料列] 或 [資料行] 軸中移除階層。
  • 請勿在維度階層上定義太多導出成員(例如超過500個)。 相反地,在維度階層中擁有一般成員,並使用 MDX 範圍指派表達式(也稱為導出單元格)來取代這些導出成員的表達式。