关联维度效果问题

时间:2019-03-18 11:38:59

标签: sql-server ssas sql-server-2014 dimension multidimensional-cube

我正在使用2个星型模式数据仓库,每个数据仓库都包含一个事实表,而维度表位于单独的数据库中(两个数据仓库都使用一个数据库)。

我为每个数据仓库创建了一个多维分析项目:

  • 在第一个项目中,我定义了维度并部署了Analysis数据库,并且能够从Management Studio中毫无问题地浏览多维数据集。
  • 在第二个项目中,我定义了链接维,并使用了第一个分析数据库中的部署维。

当尝试浏览第二个多维数据集时,一切工作正常,但是当我尝试浏览维度或在浏览多维数据集时添加过滤器时,Management Studio没有响应。几个小时后,它将返回以下错误消息:

  

检索子节点时发生错误:行(名称空间urn:schemas-microsoft-com:xml-analysis:异常)处的Messages元素无法出现在Envelope / Body / ExecuteResponse / return / SubCube下)

在搜索此问题时,我发现一些文章提到,当分析数据库位于不同服务器上时,不建议使用链接维度。但就我而言,数据仓库和分析数据库位于同一服务器上。

我也尝试使用FILTER()使用MDX查询来运行相同的过滤器逻辑,但没有运气。 MDX查询语法类似于:

SELECT ([Dimension2].[---].[---], [MeasureGroup].[Measure]) ON COLUMNS,
        FILTER([Dimension1].[---].[---],[Dimension1].[---].[---].CurrentMember.Name = "FilterValue") ON ROWS
FROM [AnalysisCube]

请注意:尺寸包含超过4 GB,并且CompatibilityLevel设置为1100

有什么建议吗?

1 个答案:

答案 0 :(得分:6)

基于以下Microsoft参考:

  

SSAS允许您将链接的维添加到该其他多维数据库,以便您只有一个维可以构建和维护。但是,在SSAS开发中,使用链接维度并不是最佳实践,因为它可能会导致性能问题

     

考虑一次构建并重新使用开发工作的另一种方法是将.dim文件保存在源代码管理中。然后,您可以要求新的多维数据库项目从源代码管理中添加.dim文件,而不是直接构建新的维度。 这样,您可以将设计维护在中央位置,并从可重用性中受益,而不会引起潜在的性能问题。

从上面的信息来看,从性能角度来看,似乎不建议使用链接尺寸。