Ssas 定义分区切片器时集合的任意形状错误

Ssas 定义分区切片器时集合的任意形状错误,ssas,ssas-2008,Ssas,Ssas 2008,我试图适应在多维数据集中为相关分区设计切片器的概念。这是我通常避免的做法,因为我熟悉自动切片的概念,创建切片器更多地被视为选项,而不是正确的设计 然而,这一错误正在成为一个完全令人烦恼的问题,如果没有人能够为臭名昭著的“在当前上下文中不允许任意形状的集合”错误提供合理的解决方案,我正在考虑重新使用它们 我在尝试使用使用日历日期层次结构的切片器处理多维数据集时收到此错误。下面是一个分区切片器的示例: {[Calendar Dates].[Calendar Dates].[Calendar Year

我试图适应在多维数据集中为相关分区设计切片器的概念。这是我通常避免的做法,因为我熟悉自动切片的概念,创建切片器更多地被视为选项,而不是正确的设计

然而,这一错误正在成为一个完全令人烦恼的问题,如果没有人能够为臭名昭著的“在当前上下文中不允许任意形状的集合”错误提供合理的解决方案,我正在考虑重新使用它们

我在尝试使用使用日历日期层次结构的切片器处理多维数据集时收到此错误。下面是一个分区切片器的示例:

{[Calendar Dates].[Calendar Dates].[Calendar Year].&[2007].&[QUARTER NUMBER 2].&[APRIL].&[2007-04-01T00:00:00]
,[Calendar Dates].[Calendar Dates].[Calendar Year].&[2007].&[QUARTER NUMBER 2].&[APRIL].&[2007-04-02T00:00:00]
,[Calendar Dates].[Calendar Dates].[Calendar Year].&[2007].&[QUARTER NUMBER 2].&[APRIL].&[2007-04-03T00:00:00]
,[Calendar Dates].[Calendar Dates].[Calendar Year].&[2007].&[QUARTER NUMBER 2].&[APRIL].&[2007-04-04T00:00:00]
,[Calendar Dates].[Calendar Dates].[Calendar Year].&[2007].&[QUARTER NUMBER 2].&[APRIL].&[2007-04-05T00:00:00]
,[Calendar Dates].[Calendar Dates].[Calendar Year].&[2007].&[QUARTER NUMBER 2].&[APRIL].&[2007-04-06T00:00:00]
,[Calendar Dates].[Calendar Dates].[Calendar Year].&[2007].&[QUARTER NUMBER 2].&[APRIL].&[2007-04-07T00:00:00]}
我的第一个优点是我必须手动指定集合的每个成员,因为禁止使用range(:)操作符。我维护的多维数据集的大小是巨大的,仅仅创建所需的分区数量本身就是一项极端的任务,因此不使用range操作符只是一个很差的限制。我看到MSConnect上有人请求更正此设计问题,但我注意到的最后一个响应是,对于SQL2008 R2来说已经太晚了。不过,没有提到打算在以后的版本中解决这个问题

请参阅:

通过我的抱怨会话,我看不到我定义的集合在哪里或为什么创建任意形状。此外,看看什么构成了一组任意形状的例子,我看不出有任何关联表明我的形状属于这一类

我需要做些什么来规避问题并避免恼人的错误

非常欢迎任何建议。

解决了这个问题

在我回顾的所有可能导致此错误的示例中,有人试图在分区上定义一个需要跨不同维度交叉连接的切片,这导致了错误,“在当前上下文中不允许集合的任意形状”

虽然我定义的集合没有跨不同维度使用显式交叉联接,但集合的元素是用户定义层次结构的产物,因此生成切片需要隐式交叉联接

为了减轻隐式交叉连接,我重新创建了集合的成员,使其位于基本属性级别,瞧

因此,修订后的集现在是:

{[Calendar Dates].[Dates].&[2007-04-01T00:00:00]
,[Calendar Dates].[Dates].&[2007-04-02T00:00:00]
,[Calendar Dates].[Dates].&[2007-04-03T00:00:00]
,[Calendar Dates].[Dates].&[2007-04-04T00:00:00]
,[Calendar Dates].[Dates].&[2007-04-05T00:00:00]
,[Calendar Dates].[Dates].&[2007-04-06T00:00:00]
,[Calendar Dates].[Dates].&[2007-04-07T00:00:00]}
并解决了错误