parallel_clause
目的
parallel_clauseを使用すると、データベース・オブジェクト作成のパラレル化、およびその後のオブジェクトに対する問合せのデフォルトの並列度と、オブジェクトに対するDML操作の設定が可能になります。
parallel_clauseは次の文に指定できます。
-
CREATETABLE: 表のパラレル化を設定する場合(「CREATE TABLE」を参照) -
ALTERTABLE(「ALTER TABLE」を参照)-
表のパラレル化を変更する場合
-
表パーティションの追加、結合、交換、マージ、分割、切捨て、削除または移動の操作をパラレル化する場合
-
-
CREATECLUSTERおよびALTERCLUSTER: クラスタのパラレル化を設定または変更する場合(「CREATE CLUSTER」および「ALTER CLUSTER」を参照)。 -
CREATEINDEX: 索引のパラレル化を設定する場合(「CREATE INDEX」を参照) -
ALTERINDEX(「ALTER INDEX」を参照)-
索引のパラレル化を変更する場合
-
索引の再構築または索引パーティションの分割をパラレル化する場合
-
-
CREATEMATERIALIZEDVIEW: マテリアライズド・ビューのパラレル化を設定する場合(「CREATE MATERIALIZED VIEW」を参照) -
ALTERMATERIALIZEDVIEW(「ALTER MATERIALIZED VIEW」を参照)-
マテリアライズド・ビューのパラレル化を変更する場合
-
マテリアライズド・ビュー・パーティションの追加、結合、交換、マージ、分割、切捨て、削除または移動の操作をパラレル化する場合
-
マテリアライズド・ビュー・サブパーティションの追加または移動の操作をパラレル化する場合
-
-
CREATEMATERIALIZEDVIEWLOG: マテリアライズド・ビュー・ログのパラレル化を設定する場合(「CREATE MATERIALIZED VIEW LOG」を参照) -
ALTERMATERIALIZEDVIEWLOG(「ALTER MATERIALIZED VIEW LOG」を参照)-
マテリアライズド・ビュー・ログのパラレル化を変更する場合
-
マテリアライズド・ビュー・ログ・パーティションの追加、結合、交換、マージ、分割、切捨て、削除または移動の操作をパラレル化する場合
-
-
ALTERDATABASE...RECOVER: データベースをリカバリする場合(「ALTER DATABASE」を参照) -
ALTERDATABASE...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文および
CREATETABLE...ASSELECT文は、パラレルで実行されます。ただし、リモート・オブジェクトはリモート・データベースにある必要があります。参照は、ローカル・データベースにあるオブジェクトにループバックできません。たとえば、ローカル・データベースのオブジェクトを指定するリモート・データベースのシノニムから参照することはできません。 -
LOB列を含む表でのDML操作はパラレル化できます。ただし、パーティション内並列性はサポートされていません。
関連項目:
パラレル化操作の詳細は、『Oracle Database VLDBおよびパーティショニング・ガイド』を参照してください。また「表の作成: パラレル化の例」も参照してください。
