MicroStrategy ONE

Cartesian Join Evaluation

Cartesian Join Evaluation is an advanced property that is hidden by default. For information on how to display this property, see Viewing and Changing Advanced VLDB Properties.

This property allows the MicroStrategy SQL Engine to use a new algorithm for evaluating whether or not a Cartesian join is necessary. The new algorithm can sometimes avoid a Cartesian join when the old algorithm cannot. For backward compatibility, the default is the old algorithm. If you see Cartesian joins that appear to be avoidable, use this property to determine whether the engine's new algorithm avoids the Cartesian join.

Levels at Which You Can Set This

Database instance, report, and template

Examples

Do Not Reevaluate Cartesian Joins (default)

select a12.ATTR1_ID ATTR1_ID, 
max(a12.ATTR1_DESC) ATTR1_DESC, 
a13.ATTR2_ID ATTR2_ID, 
max(a13.ATTR2_DESC) ATTR2_DESC, 
count(a11.FACT_ID) METRIC 
from FACTTABLE a11 
cross join LU_TABLE1 a12 
join LU_TABLE2 a13 
on (a11.ATTR3_ID = a13.ATTR3_ID and 
a12.ATTR1_ID = a13.ATTR1_CD) 
group by a12.ATTR1_ID, 
a13.ATTR2_ID 

Reevaluate the Cartesian Joins

select a12.ATTR1_ID ATTR1_ID, 
max(a12.ATTR1_DESC) ATTR1_DESC, 
a13.ATTR2_ID ATTR2_ID, 
max(a13.ATTR2_DESC) ATTR2_DESC, 
count(a11.FACT_ID) METRIC 
from FACTTABLE a11 
join LU_TABLE2 a13 
on (a11.ATTR3_ID = a13.ATTR3_ID) 
join LU_TABLE1 a12 
on (a12.ATTR1_ID = a13.ATTR1_CD) 
group by a12.ATTR1_ID, 
a13.ATTR2_ID