1

奇妙な動作が発生する SSAS に問題があります。私は立方体を生産していますが、問題のシミュレーションのために、問題を切り分けるために小さな立方体を作成しました。問題をシミュレートする小さな立方体を作成しました。このキューブには、1 つのディメンションと 1 つのファクトがあります。[販売テリトリー] で、UnknownMember プロパティを true に設定しました。キューブ計算では、以下に簡単なスコープ コードを配置します。

SCOPE([Measures].[SalesAmountCustomValue]);
    THIS = [Measures].CurrentMember+10000000;
END SCOPE;

SQL Server 2008 R2 で以下の MDX を実行しましたが、集計関数で UnknownMember を使用した場合と使用しなかった場合で結果が異なります。SQL Server 2012 では、結果は予想どおりです。

WITH 
MEMBER [Sales Territory].[Sales Territory Country].[Countries] AS
  Aggregate(
      {
        [Sales Territory].[Sales Territory Country].[All].UNKNOWNMEMBER,
        [Sales Territory].[Sales Territory Country].&[9],
        [Sales Territory].[Sales Territory Country].&[6]
      }
  )
MEMBER [Measures].[SalesAmountCustomValueWithAggregate] AS
  (
    [Sales Territory].[Sales Territory Country].[Countries],
    [Measures].[SalesAmountCustomValue]
  ),
FORMAT_STRING="0,000;-0,000"
SELECT {
      [Measures].[SalesAmount],
      [Measures].[SalesAmountCustomValue],
      [Measures].[SalesAmountCustomValueWithAggregate]
   } ON 0
FROM AdventureWorks
WHERE {
    [Sales Territory].[Sales Territory Country].[All].UNKNOWNMEMBER,
    [Sales Territory].[Sales Territory Country].&[9],
    [Sales Territory].[Sales Territory Country].&[6]
  }

結果は次のとおりです。

    売上高: 11,038,845

    SalesAmountCustomValue: 21,038,845

    SalesAmountCustomValueWithAggregate: 41,038,845

集計関数の UnknownMember を削除すると、結果は次のようになります。

    売上高: 11,038,845

    SalesAmountCustomValue: 21,038,845

    SalesAmountCustomValueWithAggregate: 21,038,845

MDX エンジンの動作が異なります。最初の例では、集計関数の前にメンバーごとにスコープ計算が実行されます。この場合、スコープ計算は 3 回実行されます。[Sales Territory].[Sales Territory Country].&[AAA] のように集計関数に無効なメンバーを入れても同様のことが起こりますが、この場合、SQL 2008 R2 と SQL 2012 で 2 回スコープ計算が実行されます。

UnknownMember を削除すると、スコープ計算が 1 回実行され、合計で 100 億になります。

同じ MDX に対して、SQL 2012 と同じ動作が必要です。

    売上高: 11,038,845

    SalesAmountCustomValue: 21,038,845

    SalesAmountCustomValueWithAggregate: 21,038,845

次のバージョンをテストしました。

    SQL 2008R2 SP2 10.50.4279.0 x64

    SQL 2012 11.0.2100.60 x64

何が起こっているのかについて何か考えはありますか?

よろしくお願いします。

パウロ・コレア

4

1 に答える 1