Mdx 筛选器()在PowerPivot查询中太慢

Mdx 筛选器()在PowerPivot查询中太慢,mdx,powerpivot,Mdx,Powerpivot,我有一个关于MDX代码的问题,我正在尝试从多维数据集中包含多个帐号的度量值中筛选出值,但是,性能太慢,我无法找到比下面更好的解决方案 Filter ( [Cost Element].[ZCE Level08].[ZCE Level08].ALLMEMBERS , Instr ( [Cost Element].[ZCE.Level08].CurrentMember.Properties('Member_Caption')

我有一个关于MDX代码的问题,我正在尝试从多维数据集中包含多个帐号的度量值中筛选出值,但是,性能太慢,我无法找到比下面更好的解决方案

Filter
(
  [Cost Element].[ZCE Level08].[ZCE Level08].ALLMEMBERS
 ,
   Instr
     (
       [Cost Element].[ZCE.Level08].CurrentMember.Properties('Member_Caption')
                                     ,'A12600100'
     ) = 0

    AND 
      Instr
          (
             [Cost Element].[ZCE Level08].CurrentMember.Properties('Member_Caption')
                                     ,'A12600300'
          ) = 0
)
这段代码实现的是过滤掉包含代码中任何帐户的任何行,但是这是一个非常大的立方体,我必须再添加17个帐户,这使得这段代码的过滤速度非常慢。还有比这更好的解决方案吗


提前谢谢各位

好的,有一种更快的方法-使用函数
EXCEPT
而不是
FILTER
,并使用实际成员而不是通过
instr
识别它们来创建一组异常:

EXCEPT
(
  [Cost Element].[ZCE Level08].[ZCE Level08].ALLMEMBERS
 ,
  {
    [Cost Element].[ZCE.Level08].[ZCE Level08].[A12600100],
    [Cost Element].[ZCE.Level08].[ZCE Level08].[A12600300]
  }
)
如果您需要使用
过滤器
,那么只需去掉成员标题/instr位就可以大大加快速度:

FILTER
(
  [Cost Element].[ZCE Level08].[ZCE Level08].ALLMEMBERS
 ,
   [Cost Element].[ZCE.Level08].CurrentMember
     IS NOT [Cost Element].[ZCE.Level08].[ZCE Level08].[A12600100]
   AND 
   [Cost Element].[ZCE.Level08].CurrentMember
     IS NOT [Cost Element].[ZCE.Level08].[ZCE Level08].[A12600300]
)