在不同维度层次结构上的聚合

时间:2016-01-07 04:45:43

标签: ssas mdx

我有两个维度,比如Date Hierarchy and Product和一个包含MAX(Measures。[Max])聚合的度量。

要求是将度量的和。[Max]在DAY或HOUR级别的日期层次结构中进行汇总,并在月份级别进行汇总。

我有以下查询:

Android Studio

以上查询运行速度非常慢。有没有什么方法可以优化它?

1 个答案:

答案 0 :(得分:0)

此查询的问题在于,计算的度量Measures.SumOfMax将针对轴上的每个单元格进行评估,尽管它每次都会产生相同的值。 SSAS引擎不够智能,无法理解,但是由于您了解此行为,因此您可以利用FE缓存,以便仅对其进行一次评估并在FE缓存中进行缓存。 Read more on it here

With 
    Member Measures.[_SumOfMax] as SUM([Date].[Hierarchy].[Hour].AllMembers, Measures.[Max])
    Member Measures.[SumOfMax] as ([Date].[Hierarchy].[Hour].[All], Measures.[_SumOfMax])
Select
    NON Empty
    {
        Measures.SumOfMax
    } ON COLUMNS,
    NON EMPTY
    {
        [Date].[Hierarchy].[Month].AllMembers *
        [Product].[Product Name].[Product Name].Allmembers      
    } Having Measures.[Max] > 0 
    ON ROWS
FROM [Cube]

希望这有帮助。