KB2430162 - 修正: SSAS 2008 または SSAS 2008 R2 で MDX クエリを実行しようとすると、「式には 4,294,967,296 タプルを超えるセットで操作できません関数が含まれています」というエラー メッセージが表示される

Microsoft では、Microsoft SQL Server 2008 Service Pack 1 (SP1) または SQL Server 2008 R2 の修正プログラムを 1 つのダウンロード可能なファイルとして配布しています。 修正は累積的であるため、各新しいリリースには、以前の SQL Server 2008 Service Pack 1 (SP1) または SQL Server 2008 R2 の修正プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正プログラムが含まれています。

現象

たとえば次のようなシナリオを考えてみます。

  • Microsoft SQL Server 2008 Analysis Services (SSAS) 2008 または Microsoft SQL Server 2008 R2 Analysis Services (SSAS) 2008 R2 で次の条件を満たす多次元式 (MDX) クエリがある。

    • このクエリでは、CROSSJOIN 関数が使用されます。

    • クエリの式には、同じ次元内の異なる属性階層のタプルで構成される 2 つ以上の引数セットがあります。

    • これらのセットは、別の次元のタプルで構成される別のセットで区切られます。

    • CROSSJOIN 関数の理論上の結果セットは通常、4,294,967,296 タプルを超えます。
      たとえば、次のような MDX クエリがあるとします。

      WITH SET S AS CROSSJOIN([Product].[Large Photo].[Large Photo], [Customer].[Customer].[Customer], [Product].[Product].[Product])
      SELECT {} ON 0,
      S.ITEM(1) ON 1
      FROM [Adventureworks]
      
  • クエリを実行しようとします。

このシナリオでは、クエリは実行されません。 さらに、以下のエラー メッセージが表示されます。

注

この式には、4,294,967,296 タプルを超えるセットを操作できない関数が含まれています。

注: この種類の MDX クエリは、Excel ピボット テーブルによって自動的に生成される場合があります。

解決策

累積的な更新プログラムの情報

SQL Server 2008 SP1

この問題の修正プログラムは、累積的な更新プログラム 11 で最初にリリースされました。 SQL Server 2008 Service Pack 1 (SP1) 用のこの累積的な更新プログラム パッケージを入手する方法の詳細については、以下のサポート技術情報番号をクリックしてください。

2413738 SQL Server 2008 Service Pack 1 の累積的な更新プログラム パッケージ 11 (注: ビルドは累積的であるため、新しくリリースされた修正プログラムには、以前の SQL Server 2008 Service Pack 1 (SP1) 修正プログラムのリリースに含まれていたすべての修正プログラムおよびセキュリティ更新プログラムが含まれています。 この修正プログラムが含まれている最新リリースの修正の適用を検討することを推奨します。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。

970365 SQL Server 2008 Service Pack 1 以降にリリースされた SQL Server 2008 ビルド

SQL Server 2008 R2

この問題の修正プログラムは、累積的な更新プログラム 5 で最初にリリースされました。 SQL Server 2008 R2 用のこの累積的な更新プログラム パッケージを入手する方法の詳細については、以下のサポート技術情報番号をクリックしてください。

2438347 SQL Server 2008 R2 の累積的な更新プログラム パッケージ 5 (注: ビルドは累積的であるため、新しい修正プログラムの各リリースには、以前の SQL Server 2008 R2 更新プログラムのリリースに含まれていたすべての修正プログラムおよびセキュリティ更新プログラムが含まれています。 この修正プログラムが含まれている最新リリースの修正の適用を検討することを推奨します。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。

981356 SQL Server 2008 R2 のリリース以降にリリースされた SQL Server 2008 R2 のビルド

SQL Server 2008 Service Pack 2

この問題の修正プログラムは、SQL Server 2008 Service Pack 2 の累積的な更新プログラム 2 で最初にリリースされました。 この累積的な更新プログラム パッケージの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft サポート技術情報) をクリックしてください。

2467239 SQL Server 2008 Service Pack 2 の累積的な更新プログラム パッケージ 2 注: ビルドは累積的であるため、新しくリリースされた各修正プログラムには、以前の SQL Server 2008 更新プログラムのリリースに含まれていたすべての修正プログラムおよびセキュリティ更新プログラムが含まれています。 マイクロソフトでは、この修正プログラムを含む最新の修正プログラム リリースを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。

2402659 SQL Server 2008 Service Pack 2 SQL Server以降にリリースされた SQL Server 2008 ビルドは、特定の SQL Server Service Pack 用に作成されます。 SQL Server 2008 Service Pack 2 のインストールには、SQL Server 2008 Service Pack 2 修正プログラムを適用する必要があります。 既定では、1 つの SQL Server Service Pack で提供されているすべての修正プログラムは、次の SQL Server Service Pack に含まれています。

回避策

この問題を回避するには、クエリで同じディメンションの 2 つの隣接する属性を持つ式を使用します。 たとえば、MDX クエリには次のものが含まれます。

WITH SET S AS CROSSJOIN([Product].[Large Photo].[Large Photo], [Product].[Product].[Product], [Customer].[Customer].[Customer])
SELECT {} ON 0,
S.ITEM(1) ON 1
FROM [Adventureworks]

      

状態

Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。