SUPPORT / SAMPLES & SAS NOTES
 

Support

Problem Note 17449: NON EMPTY CROSSJOIN optimization in SAS® OLAP Server

DetailsHotfixAboutRate It

The SAS® OLAP Server can provide optimized queries for the results when a NON EMPTY CROSSJOIN is used by internally using a NONEMPTYCROSSJOIN function. The server will examine the query and determine which approach is better suited to the result set.

In order for the server to perform the optimization, the query must have the following characteristics:

  1. The MDX query must have a CrossJoin() on an axis with "NON EMPTY" specified. This includes CrossJoin()s in NamedSets which are directly referenced by an axis in the SELECT statement. This is a common case when using SAS Web Report Studio or other clients using information maps to access the cube.
  2. No calculated members which access other dimensions specified in the query are referenced in the query. This condition is due to the internal processing of NonEmptyCrossJoin() which cannot re-use dimensions across axes. Here is an example of such a query:

    Note the use of cars in the calculated measure and in the CrossJoin()

    WITH member [Measures].[CalcMeas] as 'iif(cars.currentmember.parent is cars.[all cars].ford, 100,null)' SELECT [Measures].allmembers on columns, NON EMPTY { crossjoin( { dealers.[all dealers].finch.al }, cars.members ) } on rows FROM mddbcars

The optimization can be enabled or disabled through the use of "Optimize NON EMPTY CROSSJOIN" option available in SAS Management Console. The default is to enable this optimization.

Select the Hot Fix tab in this note to access the hot fix for this issue.



Operating System and Release Information

Product FamilyProductSystemSAS Release
ReportedFixed*
SAS SystemSAS OLAP ServerOpenVMS Alpha9.1 TS1M3 SP49.2 TS1M0
Tru64 UNIX9.1 TS1M3 SP49.2 TS1M0
z/OS9.1 TS1M3 SP49.2 TS1M0
Windows Vista9.1 TS1M3 SP49.2 TS1M0
Microsoft Windows XP Professional9.1 TS1M3 SP49.2 TS1M0
Microsoft Windows NT Workstation9.1 TS1M3 SP4
Microsoft Windows 2000 Professional9.1 TS1M3 SP49.2 TS1M0
Microsoft Windows 2000 Server9.1 TS1M3 SP49.2 TS1M0
Linux on Itanium9.1 TS1M3 SP49.2 TS1M0
Linux9.1 TS1M3 SP49.2 TS1M0
HP-UX IPF9.1 TS1M3 SP49.2 TS1M0
64-bit Enabled Solaris9.1 TS1M3 SP49.2 TS1M0
64-bit Enabled HP-UX9.1 TS1M3 SP49.2 TS1M0
64-bit Enabled AIX9.1 TS1M3 SP49.2 TS1M0
Microsoft Windows Server 2003 Standard Edition9.1 TS1M3 SP49.2 TS1M0
Microsoft Windows Server 2003 Enterprise Edition9.1 TS1M3 SP49.2 TS1M0
Microsoft Windows Server 2003 Datacenter Edition9.1 TS1M3 SP49.2 TS1M0
Microsoft Windows 2000 Datacenter Server9.1 TS1M3 SP49.2 TS1M0
Microsoft Windows 2000 Advanced Server9.1 TS1M3 SP49.2 TS1M0
Microsoft® Windows® for x649.1 TS1M3 SP49.2 TS1M0
Microsoft Windows XP 64-bit Edition9.1 TS1M3 SP49.2 TS1M0
Microsoft Windows Server 2003 Enterprise 64-bit Edition9.1 TS1M3 SP49.2 TS1M0
Microsoft Windows Server 2003 Datacenter 64-bit Edition9.1 TS1M3 SP49.2 TS1M0
Microsoft® Windows® for 64-Bit Itanium-based Systems9.1 TS1M3 SP49.2 TS1M0
* For software releases that are not yet generally available, the Fixed Release is the software release in which the problem is planned to be fixed.