以下の一連のルールはAS … WITH NO DATA句にだけ当てはまります。(AS … WITH DATA AND STATISTICS句に適用される一連の一般ルールを参照)CREATE TABLE AS … WITH DATA AND STATISTICSに関する一般ルール
- 統計をコピーできるターゲット テーブルの列、またはインデックスがない場合、システムはリクエスト側に警告メッセージを返します。
- ターゲット テーブルの明確なインデックス定義を指定している場合、システムはPARTITION統計をソース テーブルからターゲット テーブルにコピーしません。
これは、単一列のPARTITION統計とシステム派生PARTITION列を含む列セットの複合統計のどちらにも当てはまります。
- 指定したソース テーブル列、またはインデックス セットで統計が収集されていない場合、システムはAND STATISTICSオプションを無視し、リクエスト側に警告メッセージを返します。
- ソース テーブルの統計サブセットだけがターゲット テーブルの列およびインデックスにコピーできる場合、システムはリクエスト側に警告メッセージを返します。
- ターゲット テーブルにコピーするように指定した複数列統計の数が、複数列統計に指定できる最大数(1つのテーブルに対して収集して維持できる複数列統計の最大数は32)を超えている場合、システムは上限までの複数列統計だけをコピーし、リクエスト側にエラー メッセージを返し、残りの複数列統計はターゲット テーブルにコピーしません。
- 揮発ソース テーブルにWITH NO DATAを指定すると、エラーが返されます。
- MULTISETソース テーブルのすべての列が非固有であり、ターゲット テーブルがSETテーブルである場合、システムはゼロ統計をターゲット テーブルにコピーします。
- 永久データ テーブルにNO DATAオプションおよびグローバル一時テーブルを指定した場合、データベースは対象のすべてのソース テーブル列およびインデックスからゼロ統計をコピーします。
システムは、ソース テーブル統計の現在のタイムスタンプ値も、ターゲット テーブルの適切な統計ヒストグラムにコピーします。
- ターゲット テーブル定義の列にNOT CASESPECIFICまたはUPPERCASE属性を指定した場合、データベースはゼロ統計をコピーします。対応するソース テーブル列属性の指定と一致しているかどうかには関係ありません。
- ターゲット テーブルにインデックス定義を指定した場合に、これがソース テーブルの既存のインデックスまたは複数列定義と一致している場合、データベースはインデックスのゼロ統計をコピーします。
- 収集された統計のインデックスがターゲット テーブルで定義されていない場合、データベースは適格である複合インデックス統計をソース テーブルからターゲット テーブルにゼロ複数列統計としてコピーします。
- 対応するインデックスがターゲット テーブルに定義されている場合、データベースは適格である複合インデックス統計をターゲット テーブルからその対応するインデックスにコピーします。
- ターゲット テーブルの対応する列にインデックスが定義されている場合、データベースはソース テーブルの適格な複数列統計をゼロ複合インデックス統計としてターゲット テーブルにコピーします。
- 対応する列に対して定義されたインデックスがターゲット テーブルにある場合、システムはソース テーブルの適格な統計を、次の表で説明するようにターゲット テーブルにコピーします。
ソース テーブル統計の種類 ターゲット テーブルにコピーされる統計の種類 単一列 単一列 単一列インデックス 単一列インデックス 単一列PARTITION 単一列PARTITION 複数列 複数列 複合インデックス 複合インデックス 複合PARTITION 複合PARTITION - 対応する列に対して定義されたインデックスがターゲット テーブルにない場合、システムはソース テーブルのゼロ統計を、次の表で説明するようにターゲット テーブルにコピーします。
ソース テーブル統計の種類 ターゲット テーブルにコピーされるゼロ統計の種類 単一列 単一列 単一列インデックス 単一列インデックス 単一列PARTITION 単一列 複数列 複数列 複合インデックス 複合インデックス 複合PARTITION 複数列 - コピーする統計として単一列が適格な場合にのみ、データベースはソース テーブルのその単一列統計をゼロ単一列統計としてターゲット テーブルにコピーします。