Details
Description
(filing based on discussions with Igor)
The problem is: if one uses mrr_cost_based=ON, it is possible for the following
to occur:
- The optimizer decides to use DS-MRR (or whatever MRR implementation the engine has)
- Execution starts
- The join buffer is filled, it turns out that it has fewer records then expected
- DS-MRR scan is used (according to the decision), but use of DS-MRR only adds overhead.
The idea to address this is as follows: after BKA code has filled the join buffer, we should note the amount of data we have in the join buffer and check again whether to use DS-MRR.
Tasks to be done
- Fix the current DS-MRR cost choice formulas (or decide to use current ones)
- Implement "the idea" described above.
Unresolved questions
- DS-MRR cost formulas (use current? take 5.6's? something else?)
- Do we make the late-decision every time we've filled the join buffer? or just the first time?
Gliffy Diagrams
Attachments
Activity
- All
- Comments
- Work Log
- History
- Activity
- Transitions