CREATE TABLE AS … WITH DATA AND STATISTICSに関する一般ルール - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 詳細トピック

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
ft:locale
ja-JP
ft:lastEdition
2021-03-30
dita:mapPath
ja-JP/jpx1556733107962.ditamap
dita:ditavalPath
ja-JP/jpx1556733107962.ditaval
dita:id
B035-1184
Product Category
Software
Teradata Vantage
以下の一連のルールは、AS … WITH DATA AND STATISTICS句にのみ当てはまります。これらのルールはAS … WITH NO DATA句には影響しませんCREATE TABLE AS … WITH NO DATAに関する一般ルールを参照してください。
  • 統計をコピーできるターゲット テーブルの列、またはインデックスがない場合、システムはリクエスト側に警告メッセージを返します。
  • ターゲット テーブルの明確なインデックス定義を指定している場合、システムはPARTITION統計をソース テーブルからターゲット テーブルにコピーしません。

    これは、単一列のPARTITION統計とシステム派生PARTITION列を含む列 セットの複合統計のどちらにも当てはまります。

  • 指定したソース テーブル列、またはインデックス セットで統計が収集されていない場合、システムはAND STATISTICSオプションを無視し、リクエスト側に警告メッセージを返します。
  • ソース テーブルの統計サブセットだけがターゲット テーブルの列およびインデックスにコピーできる場合、システムはリクエスト側に警告メッセージを返します。
  • ターゲット テーブルにコピーするように指定した複数列統計の数が、複数列統計に指定できる最大数(1つのテーブルに対して収集して維持できる複数列統計の最大数は32)を超えている場合、システムは上限までの複数列統計だけをコピーし、残りの複数列統計はターゲット テーブルにコピーせず、リクエスト側に警告メッセージを返します。
  • MULTISETソース テーブルのすべての列が非固有であり、ターゲット テーブルがSETテーブルの場合、システムは統計をターゲット テーブルにコピーしません。 これは、ソース テーブルおよびターゲット テーブルの等値カーディナリティのルールに違反する可能性があるためです。 ソース テーブルに重複行がある場合は、システムはターゲット テーブルにコピーする前にこれらを除去するため、2つのテーブルでカーディナリティが等値になりません。
  • ソース テーブルに少なくとも1つの非固有列があり、ターゲット テーブルがSETテーブルの場合、他のすべてのルールに準拠していれば、システムは統計をソース テーブルからターゲット テーブルにコピーします。
  • ターゲット テーブル定義の列に対してNOT CASESPECIFIC属性を指定しており、この属性が対応するソース テーブルの列属性の指定と一致しない場合、システムは列またはインデックス セットの統計をコピーしません。これは、ターゲット テーブルのデータを変更しないというルールに違反する可能性があるためです。
  • ソース テーブルのすべての列が非固有である場合に、ターゲット テーブル定義でいずれかの列にNOT CASESPECIFIC属性を指定していて、それが対応するソース テーブル列の属性定義と一致しない場合、システムはこの列またはインデックスの統計をコピーしません。これは、ソース テーブルおよびターゲット テーブルの等値カーディナリティのルールに違反する可能性があるためです。
  • 対応するソース テーブルのソース テーブル列属性定義と一致しないターゲット テーブル定義の列に対してUPPERCASE属性を指定している場合、システムはこの列またはインデックスの統計をコピーしません。これは、ターゲット テーブルのデータを変更しないというルールに違反する可能性があるためです。
  • ターゲット テーブルの対応する列セットに対してターゲット テーブル インデックスが定義されていない場合、Teradata Databaseはソース テーブルの単一列のインデックス統計をターゲット テーブルの単一列の統計にコピーします。
  • ターゲット テーブルの対応する列に対してインデックスが定義されている場合、Teradata Databaseはソース テーブルの単一列の統計をターゲット テーブルの単一列のインデックス統計にコピーします。
  • ソース テーブル インデックス定義がターゲット テーブルに対して定義されていない場合、Teradata Databaseは複合インデックス統計を複数列統計としてソース テーブルからターゲット テーブルにコピーします。
  • 列セットに対して定義したインデックスがターゲットにある場合、Teradata Databaseは複数列統計を複合インデックス統計としてソース テーブルからターゲット テーブルにコピーします。