Ssas MDX计数性能问题&;已筛选成员/度量值的总和

Ssas MDX计数性能问题&;已筛选成员/度量值的总和,ssas,mdx,olap,Ssas,Mdx,Olap,我需要在多维数据集上运行以下MDX查询(我无权更改) 这个特定的查询运行大约需要1.5分钟,这太长了。我一直在寻找加速的方法,但我运气不好 有人能找到改进这个查询的方法吗?过去几天我一直在拼命工作,所以如果有任何帮助,我将不胜感激 `WITH MEMBER [Measures].[1-99_Count] AS COUNT(FILTER ([Scam].[Scam Ref].AllMembers, ([Measures].[Amount Lost

我需要在多维数据集上运行以下MDX查询(我无权更改)

这个特定的查询运行大约需要1.5分钟,这太长了。我一直在寻找加速的方法,但我运气不好

有人能找到改进这个查询的方法吗?过去几天我一直在拼命工作,所以如果有任何帮助,我将不胜感激

`WITH
    MEMBER [Measures].[1-99_Count] AS 
        COUNT(FILTER ([Scam].[Scam Ref].AllMembers, 
            ([Measures].[Amount Lost]>=1 AND [Measures].[Amount Lost]<=99)))
    MEMBER [Measures].[1-99_Amount] AS 
        SUM(FILTER ([Scam].[Scam Ref].AllMembers, 
        ([Measures].[Amount Lost]>=1 AND [Measures].[Amount Lost]<=99)),
            Iif(IsEmpty([Measures].[Amount Lost]),0,[Measures].[Amount Lost]))
SELECT {[Measures].[1-99_Count],
    [Measures].[1-99_Amount]} ON COLUMNS,
    [First Resolved On Date].[Month].[Month] ON ROWS
FROM [Infocentre]
WHERE ([First Resolved On Date].[Date].[Date].&[20140101]:[First Resolved On Date].[Date].[Date].&[20150623],
    [Scam].[Scam Category Level1].&[{d9d6bc38-e73e-e411-9a82-0a713f2121f7}])`
`WITH
成员[度量][1-99_计数]为
计数(筛选器([Scam].[Scam Ref])。所有成员,

([Measures].[Amount Lost]>=1和[Measures].[Amount Lost]=1和[Measures].[Amount Lost]最终,逻辑占了上风,我能够让多维数据集所有者为多维数据集添加一个新维度,这意味着我不再需要尝试让这只狗的早餐正常工作。

(只是为了好玩!)

您的第一项措施肯定可以通过以下措施加以改进。
Count(Filter
是一种大多数情况下都可以摆脱的模式。 Mosha在博客中介绍了这种模式,这种模式可以改进:

我还尝试改进第二个计算。如果此条件为真,则
[Measures].[Amount Lost]>=1和[Measures].[Amount Lost]=1和[Measures].[Amount Lost]=1和[Measures].[Amount Lost]
WITH 
  MEMBER [Measures].[1-99_Count] AS 
    Sum
    (
      [Scam].[Scam Ref].ALLMEMBERS
     ,IIF
      (
        [Measures].[Amount Lost] >= 1 AND [Measures].[Amount Lost] <= 99
       ,1
       ,null
      )
    ) 
  MEMBER [Measures].[1-99_Amount] AS 
    Sum
    (
      [Scam].[Scam Ref].ALLMEMBERS
     ,IIF
      (
        [Measures].[Amount Lost] >= 1 AND [Measures].[Amount Lost] <= 99
       ,[Measures].[Amount Lost]
       ,null
      )
    ) 
SELECT 
  {
    [Measures].[1-99_Count]
   ,[Measures].[1-99_Amount]
  } ON COLUMNS
 ,[First Resolved On Date].[Month].[Month] ON ROWS
FROM [Infocentre]
WHERE 
  (
      [First Resolved On Date].[Date].[Date].&[20140101]
    : 
      [First Resolved On Date].[Date].[Date].&[20150623]
   ,[Scam].[Scam Category Level1].&[{d9d6bc38-e73e-e411-9a82-0a713f2121f7}]
  );