Underestimation of join cardinalities in case of multiple join attributes

Details

Detail name Value
Changelog Number 5266
Type Bug
Status Resolved
Affected Versions EXASOL 6.0.0, EXASolution 5.0.0
Fix Versions EXASOL 6.0.7
Resolution Date 2018-03-02

The join order optimizer determines the order of joins in a pipeline. Typically, strong local filters and filtering joins are pushed to the front to reduce overall rows in the pipeline. To determine the cardinality of a join the number of distinct value combinations of all join attributes are estimated.

Problem
In case of multiple join attributes, the distinct value estimation assumed uncorrelated values resulting in very high distinct estimations.

As a consequence, joins were treated as filtering joins, ending up in front of the pipeline. The resulting query plans were often much more expensive than needed.

Improvement
The distinct values estimation of multiple join attributes is changed. The default attribute correlation will be the geometric mean between a total correlation and a total uncorrelation of join attributes.

The correlation type can be changed by database parameter.

Workaround
There is no workaround.