When a SQL statement references several tables, the query optimizer has to determine, in addition to the access path for each table, which order the tables are joined in and which join methods are used. The goal of the query optimizer is to minimize the amount of processing by filtering out unneeded data as soon as possible.
This chapter starts by defining key terms and explains how the three basic join methods (nested loops join, merge join, and hash join) work. Some advice follows on how to choose the join methods. Finally, the chapter describes optimization techniques such as partition-wise joins and star transformation. ...