parallel_clause
目的
parallel_clause
を使用すると、データベース・オブジェクト作成のパラレル化、およびその後のオブジェクトに対する問合せのデフォルトの並列度と、オブジェクトに対するDML操作の設定が可能になります。
parallel_clause
は次の文に指定できます。
-
CREATE
TABLE
: 表のパラレル化を設定する場合(「CREATE TABLE」を参照) -
ALTER
TABLE
(「ALTER TABLE」を参照)-
表のパラレル化を変更する場合
-
表パーティションの追加、結合、交換、マージ、分割、切捨て、削除または移動の操作をパラレル化する場合
-
-
CREATE
CLUSTER
およびALTER
CLUSTER
: クラスタのパラレル化を設定または変更する場合(「CREATE CLUSTER」および「ALTER CLUSTER」を参照)。 -
CREATE
INDEX
: 索引のパラレル化を設定する場合(「CREATE INDEX」を参照) -
ALTER
INDEX
(「ALTER INDEX」を参照)-
索引のパラレル化を変更する場合
-
索引の再構築または索引パーティションの分割をパラレル化する場合
-
-
CREATE
MATERIALIZED
VIEW
: マテリアライズド・ビューのパラレル化を設定する場合(「CREATE MATERIALIZED VIEW」を参照) -
ALTER
MATERIALIZED
VIEW
(「ALTER MATERIALIZED VIEW」を参照)-
マテリアライズド・ビューのパラレル化を変更する場合
-
マテリアライズド・ビュー・パーティションの追加、結合、交換、マージ、分割、切捨て、削除または移動の操作をパラレル化する場合
-
マテリアライズド・ビュー・サブパーティションの追加または移動の操作をパラレル化する場合
-
-
CREATE
MATERIALIZED
VIEW
LOG
: マテリアライズド・ビュー・ログのパラレル化を設定する場合(「CREATE MATERIALIZED VIEW LOG」を参照) -
ALTER
MATERIALIZED
VIEW
LOG
(「ALTER MATERIALIZED VIEW LOG」を参照)-
マテリアライズド・ビュー・ログのパラレル化を変更する場合
-
マテリアライズド・ビュー・ログ・パーティションの追加、結合、交換、マージ、分割、切捨て、削除または移動の操作をパラレル化する場合
-
-
ALTER
DATABASE
...RECOVER
: データベースをリカバリする場合(「ALTER DATABASE」を参照) -
ALTER
DATABASE
...standby_database_clauses
: スタンバイ・データベースに対する操作をパラレル化する場合(「ALTER DATABASE」を参照)。
関連項目:
DBMS_PARALLEL_EXECUTE
パッケージ(行のチャンクの変更を表に適用するメソッドを含むパッケージ)の詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。エラーがない場合は、各チャンクに対する変更が個別にコミットされます。
構文
parallel_clause::=
セマンティクス
この項では、parallel_clause
のセマンティクスについて説明します。詳細は、特定のデータベース・オブジェクトまたは操作に対してパラレル化を設定または再設定するSQL文の説明を参照してください。
ノート:
parallel_clause
構文は、以前のリリースの構文にかわるものです。以前のリリースの構文は下位互換用にサポートされていますが、説明されている動作とわずかに異なることがあります。
parallel_clause
は、PARALLEL_DEGREE_POLICY
初期化パラメータの設定に基づいて解釈されます。この初期化パラメータがAUTO
に設定されている場合、parallel_clause
は完全に無視され、オプティマイザによってすべての文に対して最適な並列度が決定されます。PARALLEL_DEGREE_POLICY
がMANUAL
またはLIMITED
のいずれかに設定されている場合、parallel_clause
は次のように解釈されます。
NOPARALLEL
を指定すると、シリアル実行が行われます。これはデフォルトです。
PARALLEL
PARALLEL
を指定すると、パラレル実行が行われます。
-
PARALLEL_DEGREE_POLICY
がMANUAL
に設定されている場合は、オプティマイザによって並列度が計算されます。並列度は、すべての関係するインスタンスで使用可能なCPUの数に、初期化パラメータPARALLEL_THREADS_PER_CPU
の値を掛けたものです。 -
PARALLEL_DEGREE_POLICY
がLIMITED
に設定されている場合は、オプティマイザによって最適な並列度が決定されます。
PARALLEL integer
integer
には、パラレル操作で使用するパラレル・スレッド数である並列度を指定します。各パラレル・スレッドは、1、2個のパラレル実行サーバーを使用します。
parallel_clauseのノート
parallel_clause
には、次のノートがあります。
-
トリガーまたは参照整合性制約を定義した表に対するDML操作では、パラレル化を使用できません。
-
索引構成表での
UPDATE
またはDELETE
操作に対して、パラレル化はサポートされません。 -
表の作成中に
parallel_clause
を指定する際に、表にLOB型またはユーザー定義オブジェクト型の列が含まれている場合、このLOB型またはオブジェクト型の列を変更する後続のINSERT
、UPDATE
、DELETE
およびMERGE
操作は、通知なしにシリアル実行されます。ただし、後続の問合せはパラレルで実行されます。 -
parallel_clause
の効果はパラレル・ヒントによって上書きされます。 -
リモート・オブジェクトを参照するDML文および
CREATE
TABLE
...AS
SELECT
文は、パラレルで実行されます。ただし、リモート・オブジェクトはリモート・データベースにある必要があります。参照は、ローカル・データベースにあるオブジェクトにループバックできません。たとえば、ローカル・データベースのオブジェクトを指定するリモート・データベースのシノニムから参照することはできません。 -
LOB列を含む表でのDML操作はパラレル化できます。ただし、パーティション内並列性はサポートされていません。
関連項目:
パラレル化操作の詳細は、『Oracle Database VLDBおよびパーティショニング・ガイド』を参照してください。また「表の作成: パラレル化の例」も参照してください。