Suboptimal join plan if there are selective non-indexed predicates involved [CORE2078] #2513
Labels
affect-version: 2.0.0
affect-version: 2.0.1
affect-version: 2.0.2
affect-version: 2.0.3
affect-version: 2.0.4
affect-version: 2.1.0
affect-version: 2.1.1
affect-version: 2.5 Alpha 1
component: engine
fix-version: 2.0.5
fix-version: 2.1.2
fix-version: 2.5 Beta 1
priority: major
qa: done with caveats
type: bug
Submitted by: @dyemanov
Attachments:
TEST1.rar
The optimizer always had some trivial heuristics to estimate the effective stream selectivity even if no indices could be used for the retrieval. But this code hasn't been migrated into the new (post-ODS10) optimizer logic, thus causing ineffective join orders chosen for the cases when non-indexed predicates may noticeably truncate the leading stream output.
Commits: a7b6702 a082a6f 4b79215 cd08735 0c9b728 ddb3e8f
====== Test Details ======
### ACHTUNG ###
1) Since time of commit (3.0.0.31836, 15-May-2015) passed on only on SuperClassic. Failed on SuperServer. How could it be if test isn`t related to arch. specifics ?! Last letter to dimitr: 16-may-2015 13:55, subject: 'fix core-2078';
2) Representation of double precision values from rdb$indices.rdb$statistics differs on Linux vs Windows in 15th digit. Decided to change out-argument of procedure that does SET STATISTICS INDEX ... to numeric(12, 10);
3) Seems that some investigations should be in optimizer due to poor predictable PLAN when change initial values of rows number in tables.
The text was updated successfully, but these errors were encountered: