我尝试在我的多维数据集或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条记录。
非常感谢任何帮助或建议!