When optimizing joins, the optimizer considers the best join order for all combinations of tables and applicable access methods. The optimizer uses a different strategy to select access methods for inner and outer tables and the degree of parallelism for the join query as a whole.
As in serial processing, the optimizer weighs many alternatives for accessing a particular table. The optimizer balances the costs of parallel execution with other factors that affect join queries, such as the presence of a clustered index, the use of either nested-loop or merge joins, the possibility of reformatting the inner table, the join order, and the I/O and caching strategy. The following discussion focuses only on parallel versus serial access method choices.