You are currently offline, waiting for your internet to reconnect

FIX: An MDX query in SQL Server 2008 R2 runs very slowly if the query contains nested Crossjoin functions


Microsoft distributes Microsoft SQL Server 2008 R2 SP1 fixes as one downloadable file. Because the fixes are cumulative, each new release contains all the hotfixes and all the security fixes that were included with the previous SQL Server 2008 R2 SP1 fix release.

Symptoms
Consider the following scenario. You run an MDX query that uses nested Crossjoin functions in Microsoft SQL Server 2008 R2. The nested Crossjoin functions reference some interleaved hierarchies. In this scenario, the query runs very slowly, and SQL Server 2008 R2 may stop responding.

For example, you run an MDX query that resembles the following:
CrossJoin(CrossJoin(CrossJoin (CrossJoin([Dimension1 Hierarchy], [Dimension1 Hierarchy])),[Dimension1 Hierarchy]), [Dimension2 Hierarchy]), [Dimension1 Hierarchy])
Notes
  • In interleaved hierarchies, nested Crossjoin functions reference different dimension hierarchies.
  • This issue does not occur in SQL Server 2008.


Cause
This issue occurs because the memory that is needed to group hierarchies from the same dimension increases exponentially and is finally used up.

Resolution

Cumulative update information

SQL Server 2008 R2 Service Pack 2

The fix for this issue was first released in Cumulative Update 3. For more information about how to obtain this cumulative update package for SQL Server 2008 R2 Service Pack 2, click the following article number to view the article in the Microsoft Knowledge Base:
2754552 Cumulative update package 3 for SQL Server 2008 R2 Service Pack 2
Note Because the builds are cumulative, each new fix release contains all the hotfixes and all the security fixes that were included with the previous SQL Server 2008 R2 Service Pack 2 fix release. We recommend that you consider applying the most recent fix release that contains this hotfix. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
2730301 The SQL Server 2008 R2 builds that were released after SQL Server 2008 R2 Service Pack 2 was released

SQL Server 2008 R2 SP1

The fix for this issue was first released in Cumulative Update 8. For more information about how to obtain this cumulative update package for SQL Server 2008 R2, click the following article number to view the article in the Microsoft Knowledge Base:
2723743 Cumulative update package 8 for SQL Server 2008 R2 Service Pack 1
Note Because the builds are cumulative, each new fix release contains all the hotfixes and all the security fixes that were included with the previous SQL Server 2008 R2 fix release. We recommend that you consider applying the most recent fix release that contains this hotfix. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
2567616 The SQL Server 2008 R2 builds that were released after SQL Server 2008 R2 Service Pack 1 was released
Status
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
Workaround
To work around this issue, change the query to put the second dimension hierarchy in the outer Crossjoin function. For example, rewrite the query to resemble the following:
CrossJoin(CrossJoin(CrossJoin (CrossJoin([Dimension1 Hierarchy], [Dimension1 Hierarchy])),[Dimension1 Hierarchy]), [Dimension1 Hierarchy]), [Dimension2 Hierarchy])


Properties

Article ID: 2707185 - Last Review: 10/15/2012 17:33:00 - Revision: 3.0

Microsoft SQL Server 2008 R2 Analysis Services

  • kbqfe kbfix kbsurveynew kbexpertiseadvanced KB2707185
Feedback