0

我正在尝试调整在我的多维数据集中为关联分区设计切片器的概念。这是我通常避免的一种做法,因为我熟悉 Auto-Slice 概念,其中创建 Slicers 更多地被视为选项而不是适当的设计。

然而,这个错误正变得令人烦恼,如果没有人可以为臭名昭著的“当前上下文中不允许任意形状的集合”错误提供合理的解决方案,我正在考虑回过头来避免使用它们。

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

{[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]}

我的第一个不满是我必须手动指定集合的​​每个成员,因为禁止使用范围 (:) 运算符。我维护的立方体的大小是巨大的,仅仅创建所需的分区数量本身就是一项极端的任务,所以不使用范围运算符只是恕我直言的一个糟糕的限制。我看到 MSConnect 上有一个更正此设计问题的请求,但我注意到的最后一个响应是 SQL2008 R2 为时已晚。没有提到打算在以后的版本中解决它。

请参阅:https ://connect.microsoft.com/SQLServer/feedback/details/339861/automatically-resolve-arbitrary-shape-sets-to-subcubes

通过我的抱怨会话,我看不到我定义的集合在哪里或为什么会创建任意形状。此外,查看关于什么构成任意形状集的示例,我看不出任何相关性表明我的集合属于该类别。

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

非常欢迎任何意见或建议。

4

1 回答 1

0

想通了。

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

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

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

所以修改后的集合现在是:

{[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]}

并且错误已解决。

于 2013-01-18T19:21:50.223 回答