KB2831478 - 修复:针对具有多个数据源的 SSAS 2012 或 SSAS 2008 R2 数据库运行 MDX 查询时出现错误的结果或访问冲突

应用对象
SQL Server 2012 Analysis Services

症状

请考虑以下情形:

  • 你有一个 Microsoft具有多个数据源的 SQL Server 2012 Analysis Services (SSAS 2012) 或 Microsoft SQL Server 2008 R2 Analysis Services (SSAS 2008 R2) 数据库。
  • 你有一个多维表达式 (MDX) 查询,其中包含一些筛选器。
  • 针对关系 OLAP (ROLAP) 分区运行 MDX 查询。 筛选器引用的 ROLAP 分区和维度来自不同的数据源

在这种情况下,可能会返回不正确的结果或发生访问冲突。

原因

出现此问题的原因是辅助数据源阻止 SSAS 将筛选器推送到 SQL 查询中。 由于这是意外行为,因此 SSAS 会生成不一致的内部数据结构,从而导致访问冲突或不正确的结果。

解决方法

累积更新信息

此问题首先在以下SQL Server累积更新中得到解决。

SQL Server 2012 /zh-cn/help/2891666 的累积更新 10

关于 SQL Server 的累积更新

SQL Server的每个新累积更新都包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看SQL Server的最新累积更新:

      

SQL Server 2008 R2 Service Pack 2 的累积更新 8 此问题的修补程序首次在累积更新 8 中发布。 有关如何为 SQL Server 2008 R2 Service Pack 2 获取此累积更新包的详细信息,请单击以下序列号以查看Microsoft知识库中的文章:

2871401 2008 R2 Service Pack 2 的累积更新包 8 注意 由于内部版本是累积的,因此每个新修补程序版本都包含所有修补程序和所有安全修补程序,这些修补程序和所有安全修补程序包含在以前的 SQL Server 2008 R2 Service Pack 2 修补程序版本中。 建议考虑应用包含此修补程序的最新修补程序版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2730301 SQL Server 2008 R2 Service Pack 2 发布后发布的 SQL Server 2008 R2 版本

SQL Server 2012 Service Pack 1 的累积更新 4 累积更新 4 中首次发布了此问题的修补程序。 有关如何获取 SQL Server 2012 Service Pack 1 的此累积更新包的详细信息,请单击以下序列号以查看Microsoft知识库中的文章:

2833645 SQL Server 2012 Service Pack 1 的累积更新包 4 注意 由于内部版本是累积的,因此每个新修补程序版本都包含上一个SQL Server 2012 Service Pack 1 修补程序版本中包含的所有修补程序和所有安全修补程序。 建议考虑应用包含此修补程序的最新修补程序版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

2772858 在 SQL Server 2012 Service Pack 1 发布之后发布的 SQL Server 2012 内部版本

状态

Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。

详细信息

此问题已在上一次更新中部分修复。 但是,此知识库 (知识库文章) 中所述的修复已完成。 对于原始修复,可以参阅以下文章:

2770635 修复:针对具有多个数据源的 SSAS 2008 R2 或 SSAS 2012 数据库运行 MDX 查询时,结果不正确