【问题标题】:MDX Query with Crossjoin and Filter Times Out带有交叉连接和过滤器超时的 MDX 查询
【发布时间】:2017-11-03 01:31:28
【问题描述】:

我每次尝试运行此查询时都会超时。在我将“([成品].[Primary].MEMBERS”部分添加到查询的行部分之前,它似乎有效。有什么想法吗?

SELECT NON EMPTY {[Measures].[Retailer Event Margin Pcnt (Actual, WB Total, LE)], [Measures].[Incr Cnsmp Units (Actual)]} ON COLUMNS,

NON EMPTY {[成品].[Primary].MEMBERS * [Promotion Plan].[Promotion Plan].[Event].MEMBERS} HAVING LEFT([Promotion Plan].[Promotion Plan].CurrentMember.Name, 6) = "Anchor" ON ROWS 来自 [豌豆] WHERE([时间].[财政].[财政年度].&[2017])

【问题讨论】:

    标签: filter mdx cross-join


    【解决方案1】:

    尝试“非空”关键字,它在轴级别评估集合,“非空”在查询之上评估,这可能对大型集合有性能问题。

    非空( nonempty([成品].[primary].members,[your measure])*[promotion plan].[promotion plan].members,[your measure])

    这只是一个参考,您需要根据自己的情况对其进行一些更改。

    希望对你有帮助。

    MDXHelper:高效地编写、分析、调优、调试 MDX 的 IDE

    【讨论】:

      【解决方案2】:

      尝试在 Crossjoin 之前进行过滤:

      SELECT NON EMPTY {[Measures].[Retailer Event Margin Pcnt (Actual, WB Total, LE)], [Measures].[Incr Cnsmp Units (Actual)]} ON COLUMNS,
      
      NON EMPTY [Finished Product].[Primary].MEMBERS 
      * Filter([Promotion Plan].[Promotion Plan].[Event].MEMBERS, LEFT([Promotion Plan].[Promotion Plan].CurrentMember.Name, 6) = "Anchor")
      ON ROWS FROM [PEA] 
      WHERE ( [Time].[Fiscal].[Fiscal Year].&[2017] )
      

      【讨论】:

        猜你喜欢
        • 2016-10-02
        • 2012-01-22
        • 1970-01-01
        • 1970-01-01
        • 2016-06-14
        • 1970-01-01
        • 2019-03-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多