CREATE TABLE AS SELECT文には、CREATE部分(DDL)とSELECT部分(問合せ)の2つの部分があります。Oracle Databaseではこの文の両方の部分をパラレル化できます。CREATE部分は他のDDL操作と同じルールに従います。
この項の内容は次のとおりです。
CREATE TABLE AS SELECT文の問合せ部分をパラレル化できるのは、次の条件が満たされる場合のみです。
問合せにパラレル・ヒントの指定(PARALLELまたはPARALLEL_INDEX)が含まれるか問合せに指定された少なくとも1つの表で、全表スキャンまたは複数のパーティションに及ぶ索引レンジ・スキャンが必要である。文のCREATE部分にPARALLEL句が指定されているか、問合せで参照されているスキーマ・オブジェクトにPARALLEL宣言が関連付けられている。
問合せに指定された少なくとも1つの表で、全表スキャンまたは複数のパーティションに及ぶ索引レンジ・スキャンが必要である。
CREATE TABLE ... AS SELECT文の問合せ部分のDOPは、次のいずれかのルールによって決まります。
問合せ部分は、CREATE部分のPARALLEL句に指定された値を使用します。
PARALLEL句が指定されない場合、デフォルトDOPはCPUの数です。
CREATEがシリアルな場合、DOPは問合せによって決まります。
並列処理のヒントに指定される値はすべて無視されます。
CREATE TABLE AS SELECTのCREATE操作は、PARALLEL句またはALTER SESSION FORCE PARALLEL DDL文によってのみパラレル化できます。
CREATE TABLE AS SELECTのCREATE操作がパラレル化されるとき、可能であればスキャン操作もパラレル化されます。スキャン操作をパラレル化できないのは次のような場合です。
SELECT句にNO_PARALLELヒントがある場合。
操作によって非パーティション表の索引がスキャンされる場合。
CREATE操作がパラレル化されないとき、SELECTをパラレル化できるのは、PARALLELヒントがある場合、または選択される表(またはパーティション索引)にパラレル宣言がある場合です。