Restrict use of caching global joins when join attributes are expressions

Details

Detail name Value
Changelog Number 6622
Type Improvement
Status Resolved
Fix Versions Exasol 6.1.3
Resolution Date 2019-05-13

Background

The join order optimizer uses the number of distinct values in join attributes to determine join result sizes and costs. In case of expressions as join attributes the optimizer cannot determine the number of distinct values and assumes all values being equal. This defensive heuristic penalizes such joins almost as cross joins so they often come last in join order.

Problem

The distinct estimation of expressions suggested a high caching potential for global joins (many equal values). In consequence, the caching global join implementation (IndexCache) was used too often reducing query performance and creating large amounts of TEMP.

Fix

The use of caching global joins will be restricted from joins over expressions.

Workaround

There is no workaround.