プライマリ・コンテンツに移動
Oracle® Database VLDBおよびパーティショニング・ガイド
12c リリース1 (12.1)
B71291-10
目次へ移動
目次
索引へ移動
索引

前
次

CREATE TABLE AS SELECTのルール

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部分)

CREATE TABLE AS SELECTCREATE操作は、PARALLEL句またはALTER SESSION FORCE PARALLEL DDL文によってのみパラレル化できます。

CREATE TABLE AS SELECTCREATE操作がパラレル化されるとき、可能であればスキャン操作もパラレル化されます。スキャン操作をパラレル化できないのは次のような場合です。

  • SELECT句にNO_PARALLELヒントがある場合。

  • 操作によって非パーティション表の索引がスキャンされる場合。

CREATE操作がパラレル化されないとき、SELECTをパラレル化できるのは、PARALLELヒントがある場合、または選択される表(またはパーティション索引)にパラレル宣言がある場合です。

並列度(CREATE部分)

CREATE操作およびSELECT操作(パラレル化される場合)のDOPは、ALTER SESSION FORCE PARALLEL DDL文によって上書きされないかぎり、CREATE文のPARALLEL句によって指定されます。PARALLEL句でDOPが指定されない場合、デフォルトはCPUの数です。