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.