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