DML文をパラレル化できるのは、セッションまたはSQL文におけるパラレルDMLを明示的に有効化した場合のみです。セッションでこのモード有効にするには、次のSQL文を実行します。
ALTER SESSION ENABLE PARALLEL DML;
特定のSQL文でパラレルDMLモードを有効にするには、ENABLE_PARALLEL_DML
SQLヒントを含めます。次に例を示します。
INSERT /*+ ENABLE_PARALLEL_DML */ …
パラレルDMLとシリアルDMLでは、ロック、トランザクションおよびディスク領域の要件が異なるため、このモードが必要になり、パラレルDMLはデフォルト設定によりセッションに対して無効化されています。
パラレルDMLが無効になっていると、PARALLEL
ヒントが使用されてもDMLはパラレルで実行されません。
パラレルDMLがセッションで有効化されていると、そのセッションのすべてのDML文がパラレル実行の対象とみなされます。ENABLE_PARALLEL_DML
ヒントを使用してパラレルDMLがSQL文で有効になっている場合、その特定の文のみがパラレル実行の対象として考慮されます。ただし、パラレルDMLが有効になっていても、パラレル・ヒントがない場合や表にパラレル属性がない場合、またはパラレル操作の制限に違反している場合、DML操作はシリアルで実行されます。
セッションのPARALLEL
DML
モードはSELECT
文、DDL文、およびDML文の問合せ部分の並列処理には影響しません。このモードが設定されていない場合、DML操作はパラレル化されませんが、DML文内のスキャン操作または結合操作はパラレル化されることがあります。
セッションに対してパラレルDMLモードが有効になっている場合、DISABLE_PARALLEL_DML
SQLヒントを使用して、特定のSQL文のモードを無効にできます。
詳細は、「パラレルDMLの領域に関する考慮事項」および「パラレルDMLの制限」を参照してください。