この記事は、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 クエリは失敗し、次のエラー メッセージが返されます。
クエリ プランで生成されたサブキューブの数が多すぎるクエリ オプティマイザー
このエラーは、次の条件に該当する場合に発生します。
- 1 つの階層レベルまたは属性で定義されている計算されるメンバーが多すぎます。
- 多くのフィールドまたは属性メンバーが各軸に配置されます。 または、Microsoft Excel のピボットテーブルの行または列に多くのフィールドがまとめられます。
- 選択した階層のすべてのメンバーが軸に含まれます。
- Excel ピボットテーブルでは、総計と小計がオンになります。
原因
SSAS 数式エンジン (FE) は、ストレージ エンジン (SE) クエリ サブキューブまたは Sonar サブキューブに関連するすべての MDX セットを生成する必要があります。 生成できるクエリあたりの SE クエリ サブキューブの数には制限があります。 これは仕様です。 現在、クエリ プランでは、FE がクエリに対して生成するクエリ サブキューブが多すぎるとエラーが発生します。
解決方法
このエラーを回避するには、次のベスト プラクティスのガイドラインに従ってください。
- Excel ピボットテーブルで、総計と小計の両方をオフにします。
- Excel UI のピボットテーブルの Rows または Columns 軸から階層を削除します。
- ディメンション階層で定義される計算メンバーが多くなりすぎないようにします (たとえば、500 を超えるメンバー)。 代わりに、ディメンション階層に通常のメンバーを含め、MDX スコープの割り当て式 (計算セルとも呼ばれます) を使用して、それらの計算されるメンバーの式を置き換えます。