Global joins preferred over local joins in case of many joined tables
Details
| Detail name | Value |
|---|---|
| Changelog Number | 9425 |
| Type | Bug |
| Status | Resolved |
| Affected Versions | Exasol 6.2.0, Exasol 6.1.3 |
| Fix Versions | Exasol 7.0.0, Exasol 6.2.5 |
| Resolution Date | 2020-02-20 |
Background
The join order optimizer determines the types of joins as well as the order of joins in a pipeline. In case of a pipeline with many joins, the join order search space becomes very large so that only a subset of the total space can be considered. The very best join order can be missed in such cases.
There was a problem therein that a more expensive global join was favored over a similar but cheaper local (replicated) join. The reason for it was that the global join was accidentally considered first in search space traversal.
Improvement
The search space traversal has been fixed to consider local joins before global joins.
Workaround
The optimizer behavior can be adjusted to prefer local over global joins using the database parameter "-cboCostSortMode=0".