2013-07-23 97 views
2

我們遇到了MDX查詢之一的問題。 如果我們在where子句的Range中使用日期選擇器,那麼如果我們使用逗號作爲分隔符,則需要6秒來執行else,大約需要1秒。與MDX性能相關的查詢

有沒有辦法通過在where子句中給出範圍來修改查詢和提高性能。請讓我們知道您的意見。

實施例1用逗號分隔符

WITH MEMBER Measures.X AS SUM({[User].[column].CURRENTMEMBER},[Measures].[# User Count]) 
    SELECT NON EMPTY 
    UNION({[User].[column].[ALL]}, 
    Generate(Hierarchize([User].[Column].[ALL]) 
    AS [XL_Filter_Set_0], TopCount(Except(DrilldownLevel([XL_Filter_Set_0].Current 
    AS [XL_Filter_HelperSet_0],,0,INCLUDE_CALC_MEMBERS), [XL_Filter_HelperSet_0]) 
    , 5, [Measures].[# User Count])) 
    )DIMENSION PROPERTIES PARENT_UNIQUE_NAME,HIERARCHY_UNIQUE_NAME ON ROWS , Measures.X ON COLUMNS 
    FROM [Activity] where 
    ({[Date].[Fiscal Hierarchy].[Fiscal Year Name].&[2012],[Date].[Fiscal Hierarchy].[Fiscal Year Name].&[2013], 
    [Date].[Fiscal Hierarchy].[Fiscal Year Name].&[2014]}, 
    {[Activity Type].[Activity Hierarchy].[All]}) 

實施例2沒有逗號分隔符,但我們給出的範圍

WITH MEMBER Measures.X AS SUM({[User].[column].CURRENTMEMBER},[Measures].[# User Count]) 
    SELECT NON EMPTY 
     UNION({[User].[column].[ALL]}, 
     Generate(Hierarchize([User].[Column].[ALL]) 
      AS [XL_Filter_Set_0], TopCount(Except(DrilldownLevel([XL_Filter_Set_0].Current 
      AS [XL_Filter_HelperSet_0],,0,INCLUDE_CALC_MEMBERS), [XL_Filter_HelperSet_0]) 
      , 5, [Measures].[# User Count])) 
      )DIMENSION PROPERTIES PARENT_UNIQUE_NAME,HIERARCHY_UNIQUE_NAME ON ROWS , Measures.X ON COLUMNS 
      FROM [Activity] where 
    ({[Date].[Fiscal Hierarchy].[Fiscal Year Name].&[2012]:[Date].[Fiscal Hierarchy].[Fiscal Year Name].&[2014]}, 
    {[Activity Type].[Activity Hierarchy].[All]}) 

問候, 南西

回答

1

代替WHERE嘗試使用使用範圍範圍在FROM

from (
select ([Date].[Fiscal Hierarchy].[Fiscal Year Name].&[2012]:[Date].[Fiscal Hierarchy].[Fiscal Year Name].&[2014]) on Columns From [Activity])