INSERT文を使用して実行できる機能は表8-5にまとめられます。
表8-5 INSERT機能のまとめ
| 挿入の種類 | パラレル | シリアル | NOLOGGING |
|---|---|---|---|
従来型 |
不可 パラレルDMLを有効にして |
可 |
不可 |
ダイレクト・パス
( |
可能(次の指定が必要)
さらに、次のいずれか1つの指定
または次の指定 強制的に |
可能(次の指定が必要)
|
可能(次の指定が必要) パーティションまたは表に対する |
パラレルDMLが有効で、PARALLELヒントがあるかPARALLEL属性がデータ・ディクショナリの表に設定されている場合、制限が適用されないかぎり挿入操作はパラレルで行われ追加されます。PARALLELヒントまたはPARALLEL属性のいずれかがない場合、挿入操作はシリアルで行われます。自動DOPでは、パラレルDMLが有効化または強制される場合にかぎり、SQL文のDML部分のみがパラレル化されます。
パラレルDMLが有効化される場合は、NOAPPENDヒントを使用してパラレルの従来型挿入操作を実行できます。たとえば、/*+ noappend parallel */をSQL INSERT文で使用して、パラレルの従来型挿入を実行できます。
SQL> INSERT /*+ NOAPPEND PARALLEL */ INTO sales_hist SELECT * FROM sales;
パラレルの従来型挿入操作の利点は、ダイレクト・パスINSERTの制約なしにオンライン操作を実行できることです。パラレルの従来型挿入操作のデメリットは、ダイレクト・パスINSERTよりもプロセスの速度が遅いことです。