【发布时间】:2011-12-05 22:20:02
【问题描述】:
我正在以编程方式生成以下格式的 MDX 查询:
WITH
MEMBER [Measures].[MTD] AS
SUM ({[Time].[Calendar].[Date].&[2011-11-01T00:00:00]:[Time].[Calendar].[Date].&[2011-11-30T00:00:00]
* {[Dimension1].[Dimension1].[Val1]}
* {[Dimension2].[Dimension2].[Val2]}
* {[Dimension3].[Dimension3].[Val3]}
* {{[Dimension4].[Dimension4].[XXXX],[Dimension4].[Dimension4].[DBS],[Dimension4].[Dimension4].[FD],[Dimension4].[Dimension4].[GSCFDASIA],[Dimension4].[Dimension4].[FDEM],[Dimension4].[Dimension4].[DX],[Dimension4].[Dimension4].[OSWP],[Dimension4].[Dimension4].[OOO],[Dimension4].[Dimension4].[CFD]}}
* {-{[Dimension5].[Dimension5].[SELI],[Dimension5].[Dimension5].[SELE],[Dimension5].[Dimension5].[MRDN],[Dimension5].[Dimension5].[WCSG],[Dimension5].[Dimension5].[NEWB],[Dimension5].[Dimension5].[VASS]}}
}, [Measures].[Trade Count])
如您所见,这是一种创建维度值交集的简单方法,并且在一段时间内效果很好。
最近我重写了多维数据集,从使用具有许多属性的单个维度表,到为每个维度使用单独的表(出于处理性能的原因)
问题是,当我将 Dimension4 和 Dimension5 一起过滤时,它突然变得非常慢!如果我注释掉维度 4 和 5,查询需要一秒钟。如果我取消注释维度 4 查询需要 40 秒。如果我取消注释维度 5 行,查询需要 8 分钟。
维度通过 ID 字段 (int) 连接到度量
维度有 238 个值
如果我做一个简单的查询:
在列上选择计数,{-{[Dimension5].[Dimension5].[SELI],[Dimension5].[Dimension5].[SELE],[Dimension5].[Dimension5].[MRDN],[Dimension5] .[Dimension5].[WCSG],[Dimension5].[Dimension5].[NEWB],[Dimension5].[Dimension5].[VASS]}} 在来自 MyCube 的行上
查询需要亚秒。这是关于具有尺寸组合(顶部)的东西,这使得它变得如此缓慢。不知道如何解决它。
可能值得注意的是,我的多维数据集有 13 个分区,而我在设置分区时没有设置“分区聚合”步骤。
【问题讨论】:
标签: reporting-services ssas mdx cube