Note:The parallel execution feature described in this section is available with the Oracle Database Enterprise Edition.
This section describes how to manage parallel processing of SQL statements. In this configuration Oracle Database can divide the work of processing an SQL statement among multiple parallel processes.
The execution of many SQL statements can be parallelized. The degree of parallelism is the number of parallel execution servers that can be associated with a single operation. The degree of parallelism is determined by any of the following:
PARALLEL clause in a statement
For objects referred to in a query, the
PARALLEL clause that was used when the object was created or altered
A default determined by the database
An example of using parallel SQL execution is contained in "Parallelizing Table Creation".
The following topics are contained in this section:
Oracle Database Performance Tuning Guide for information about using parallel hints
When an instance starts up, Oracle Database creates a pool of parallel execution servers which are available for any parallel operation. A process called the parallel execution coordinator dispatches the execution of a pool of parallel execution servers and coordinates the sending of results from all of these parallel execution servers back to the user.
The parallel execution servers are enabled by default, because by default the value for
PARALLEL_MAX_SERVERS initialization parameter is set >0. The processes are available for use by the various Oracle Database features that are capable of exploiting parallelism. Related initialization parameters are tuned by the database for the majority of users, but you can alter them as needed to suit your environment. For ease of tuning, some parameters can be altered dynamically.
Parallelism can be used by a number of features, including transaction recovery, replication, and SQL execution. In the case of parallel SQL execution, the topic discussed in this book, parallel server processes remain associated with a statement throughout its execution phase. When the statement is completely processed, these processes become available to process other statements.
See Also:Oracle Database Data Warehousing Guide for more information about using and tuning parallel execution, including parallel SQL execution
You control parallel SQL execution for a session using the
ALTER SESSION statement.
You disable parallel SQL execution with an
ALTER SESSION DISABLE PARALLEL DML|DDL|QUERY statement. All subsequent DML (
DELETE), DDL (
ALTER), or query (
SELECT) operations are executed serially after such a statement is issued. They will be executed serially regardless of any
PARALLEL clause associated with the statement or parallel attribute associated with the table or indexes involved.
The following statement disables parallel DDL operations:
ALTER SESSION DISABLE PARALLEL DDL;
You enable parallel SQL execution with an
ALTER SESSION ENABLE PARALLEL DML|DDL|QUERY statement. Subsequently, when a
PARALLEL clause or parallel hint is associated with a statement, those DML, DDL, or query statements will execute in parallel. By default, parallel execution is enabled for DDL and query statements.
A DML statement can be parallelized only if you specifically issue an
ALTER SESSION statement to enable parallel DML:
ALTER SESSION ENABLE PARALLEL DML;
You can force parallel execution of all subsequent DML, DDL, or query statements for which parallelization is possible with the
ALTER SESSION FORCE PARALLEL DML|DDL|QUERY statement. Additionally you can force a specific degree of parallelism to be in effect, overriding any
PARALLEL clause associated with subsequent statements. If you do not specify a degree of parallelism in this statement, the default degree of parallelism is used. However, a degree of parallelism specified in a statement through a hint will override the degree being forced.
The following statement forces parallel execution of subsequent statements and sets the overriding degree of parallelism to 5:
ALTER SESSION FORCE PARALLEL DDL PARALLEL 5;