2

我们正面临与其中一个 MDX 查询有关的问题。如果我们在 where 子句的 Range 中使用日期选择器,则执行需要 6 秒;如果我们使用逗号作为分隔符,则需要大约 1 秒。

有没有办法通过在 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]})

问候,南希

4

1 回答 1

0

而不是在WHERE尝试使用 Range inFROM

from (
select ([Date].[Fiscal Hierarchy].[Fiscal Year Name].&[2012]:[Date].[Fiscal Hierarchy].[Fiscal Year Name].&[2014]) on Columns From [Activity])
于 2014-01-24T05:14:20.747 回答