Outdated minimum/maximum column statistics through updating statements
Details
| Detail name | Value |
|---|---|
| Changelog Number | 10010 |
| Type | Bug |
| Status | Resolved |
| Affected Versions | Exasol 6.1.0, Exasol 6.2.0 |
| Fix Versions | Exasol 7.0.0, Exasol 6.2.7 |
| Resolution Date | 2020-05-06 |
Background
Column statistics (distinct estimates, minimum & maximum values) are used by the join order optimizer to minimize pipeline costs. Minimum and maximum values are the basis for estimating selectivity of BETWEEN and LESS THAN filter conditions.
Column statistics are automatically maintained by DML statements. They are fully recomputed if a significant amount of table data has been changed since the last computation. Minimum and maximum values are kept up-to-date if new data is being inserted.
Problem
In case of a mix of inserting and updating statements (UPDATE, MERGE) it can happen that the maintenance of minimum and maximum values is completely abandoned until next full recomputation. The column statistics will become outdated and hence query performance problems can appear.
Fix
The statistics maintenance will be improved to always maintain minimum and maximum values in inserting statements.
Workaround
In Exasol 6.2 releases (starting with 6.2.7) the improved behavior can to be activated by database parameter "-alwaysUpdateMinMax=1".