MicroStrategy ONE

Cartesian Join Warning

The Cartesian Join Warning indicates the action that occurs when the Analytical Engine generates a report that contains a Cartesian join. In a Cartesian join, every row in one table is joined to every row in the other table. The query returns every possible row combination of the two tables, so a Cartesian join is usually costly to perform. Since a Cartesian join of two warehouse tables is much more costly than a Cartesian join of two intermediate tables, additional options are included to govern these cases.

The options for this property are

  • Execute

    When a Cartesian join occurs, the report is executed without any warning.

  • Cancel execution

    When a Cartesian join occurs, report execution is canceled without any warning.

  • Cancel execution only when warehouse table is involved in either side of Cartesian join

    A Cartesian join is allowed only when all tables involved in it are intermediate tables. No warning is sent.

  • If only one side of Cartesian join contains warehouse tables, SQL will be executed without warning

    A Cartesian join is allowed if only one warehouse table is involved, otherwise it is canceled without warning.

  • Use default inherited value

    Some Cartesian joins are not a direct table-to-table join. If one join Cartesian joins to another join, and one of the joins contains a warehouse table (not an intermediate table), then the execution is either canceled or allowed depending on the option selected.

    When a Cartesian join is performed between the join of two intermediate tables (TT_A join TT_B) and the join of an intermediate table and a warehouse table (TT_C join WH_D), the following happens:

    • When Cancel execution only when warehouse table is involved in either side of Cartesian join is selected, the report is canceled. In the above example, execution is canceled because a warehouse table is used, even though TT_A, TT_B, and TT_C are all intermediate tables.
    • When If only one side of Cartesian is selected, the report runs without warning. In the above example, execution continues because a warehouse table (WH_D) is used on only one side of the join.