修复: SQL Server 2008 R2 在 MDX 查询运行速度非常慢如果查询包含嵌套的交叉结合函数

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 2707185

Microsoft 将 Microsoft SQL Server 2008 R2 SP1 修补程序分发作为一个可下载的文件。修补程序是累积性的因为每个新版本包含的所有修补程序和与以前的 SQL Server 2008 R2 SP1 中包含的所有安全修补程序修补都程序版本。

症状
请考虑下面的方案。运行在 Microsoft SQL Server 2008 R2 中使用嵌套的交叉结合函数的 MDX 查询。嵌套的交叉结合函数引用一些交错的层次结构。在这种情况下,查询运行非常慢,和 SQL Server 2008 R2 可能会停止响应。

例如,您可以运行类似于以下 MDX 查询:
CrossJoin(CrossJoin(CrossJoin (CrossJoin([Dimension1 Hierarchy], [Dimension1 Hierarchy])),[Dimension1 Hierarchy]), [Dimension2 Hierarchy]), [Dimension1 Hierarchy])
备注
  • 交错的层次结构中嵌套的交叉结合函数引用不同的维度层次结构。
  • SQL Server 2008年中,不会出现此问题。


原因
因为同一维度中所需的组层次结构的内存增加呈指数级增长,最后用完,则会出现此问题。

解决方案

累积更新信息

SQL Server 2008 R2 SP1

累积更新 8 中第一次发布此问题的修补程序。有关如何为 SQL Server 2008 R2 获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2723743 累积更新包 8 的 SQL Server 2008 R2 Service Pack 1
注意 生成具有累积性的因为每个新修补程序版本包含的所有修补程序和所有安全修补程序包含以前的 SQL Server 2008 R2 修补程序版本。我们建议您考虑应用包含此修复程序的最新修补程序版本。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2567616 SQL Server 2008 R2 生成发布 SQL Server 2008 R2 Service Pack 1 后发布
状态
Microsoft 已经确认这是"适用于"一节中列出的 Microsoft 产品中的问题。
替代方法
要解决此问题,请将查询更改为第二个维度层次结构置于外部交叉结合函数。例如,重写查询如下所示:
CrossJoin(CrossJoin(CrossJoin (CrossJoin([Dimension1 Hierarchy], [Dimension1 Hierarchy])),[Dimension1 Hierarchy]), [Dimension1 Hierarchy]), [Dimension2 Hierarchy])


警告:本文已自动翻译

属性

文章 ID:2707185 - 上次审阅时间:08/30/2012 00:06:00 - 修订版本: 1.0

Microsoft SQL Server 2008 R2 Analysis Services

  • kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB2707185 KbMtzh
反馈