キューブで毎日の計算を作成するか、毎日計算を実行して任意のディメンションにロールアップする 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 レコードになると想定しています。
どんな助けや提案も大歓迎です!