首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于过滤成员/度量的计数和和的MDX性能问题

关于过滤成员/度量的计数和和的MDX性能问题
EN

Stack Overflow用户
提问于 2015-06-23 23:42:22
回答 2查看 480关注 0票数 1

我有下面的MDX查询,我需要在多维数据集上运行(我没有权限更改这个查询)。

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

有人能找到改进这个查询的方法吗?在过去的几天里,我一直在撕扯我的头发,所以任何帮助都是非常感谢的!

代码语言:javascript
复制
`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}])`
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-24 12:50:50

(只是为了好玩!)

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

http://sqlblog.com/blogs/mosha/archive/2007/11/22/optimizing-count-filter-expressions-in-mdx.aspx

我也试图改进第二次计算。如果这个条件是真[Measures].[Amount Lost] >= 1 AND [Measures].[Amount Lost] <= 99,那么这必然意味着这是假IsEmpty(Measures.Amount丢失),所以也许这两个条件都可以由1条件覆盖。另外,用0替换null - SSAS会让null更快乐(&更快)。

代码语言:javascript
复制
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}]
  );
票数 0
EN

Stack Overflow用户

发布于 2015-06-24 02:43:11

最后,逻辑占上风,我让立方体的主人给立方体增加了一个新的维度,这意味着我不再需要尝试让这只狗的早餐工作了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31015293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档