2

キューブで毎日の計算を作成するか、毎日計算を実行して任意のディメンションにロールアップする MDX ステートメントを作成しようとしています。値を正常に戻すことができましたが、パフォーマンスは本来あるべきものではありません。

私のファクト テーブルには 4 つのディメンションがあり、そのうちの 1 つは毎日の日付 (時刻) です。このファクト テーブルには、他の 4 つのメジャーを使用する数式があり、それらを毎日計算してから、時間ディメンション全体で幾何学的にリンクする必要があります。

次の MDX ステートメントはうまく機能し、正しい値を生成しますが、非常に低速です。exp(sum(log+1))-1 を使用してみましたが、乗算のパフォーマンスは少し向上しているようですが、十分ではありません。このソリューションへの別のアプローチはありますか、それとも私の MDX ステートメントに何か問題がありますか?

[Calendar_Date] と [Dim_Y].[Y ID] の集計を定義しようとしましたが、これらの集計を使用していないようです。

WITH
   MEMBER Measures.MyCustomCalc AS (
   (
      Measures.x -Measures.y
    ) -
    (
      Measures.z - Measures.j
    )
)
/
Measures.x

MEMBER Measures.LinkedCalc AS ASSP.MULTIPLY(
   [Dim_Date].[Calendar Date].Members,
   Measures.MyCustomCalc + 1
) - 1
SELECT
Measures.LinkedCalc ON Columns,
[Dim_Y].[Y ID].Members ON Rows
FROM
[My DB]

上記のクエリは、次の数のレコードで実行するのに 7 秒かかります。

メジャー: 98,160 レコード Dim_Date: 5,479 レコード Dim_Y: 42 レコード

集計を定義することにより、実行する計算量は 42 * 日数、この場合は最大 5479 レコードになると想定しています。

どんな助けや提案も大歓迎です!

4

0 に答える 0