Rules for Parallelizing Queries

This section discusses the following rules for executing queries in parallel.

Decision to Parallelize

A SELECT statement can be executed in parallel only if the following conditions are satisfied:

  • The query includes a parallel hint specification (PARALLEL or PARALLEL_INDEX) or the schema objects referred to in the query have a PARALLEL declaration associated with them.

  • At least one table specified in the query requires one of the following:

    • A full table scan

    • An index range scan spanning multiple partitions

    • A parallel table function

Degree of Parallelism

The DOP for a query is determined by the following rules:

  • The query uses the maximum DOP taken from all of the table declarations involved in the query and all of the potential indexes that are candidates to satisfy the query (the reference objects). That is, the table or index that has the greatest DOP determines the query's DOP maximum query directive.

  • If a table has both a parallel hint specification in the query and a parallel declaration in its table specification, the hint specification takes precedence over parallel declaration specification. See Table 8-2 for precedence rules.