Determining Join Order
In principle, we need to consider all possible join orderings:
As the number of joins increases, the number of alternative plans grows rapidly; we need to restrict the search space.
System-R: consider only left-deep join trees.
- Left-deep trees allow us to generate all fully pipelined plans:Intermediate results not written to temporary files.
- Not all left-deep trees are fully pipelined (e.g., SM join).