Some users would like to see the documentation include a decision tree for the optimizer, so those users can better understand the decisions that the optimizer makes. This would help those users find bugs in the optimizer and would better allow them to determine why the optimizer chooses different plans on different systems.
Some things that this documentation could touch on are:
- How join order is determined.
- How it determines what index to use.
- How it determines whether to use a particular optimization strategy.