複数レベル パーティションの制限 - 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

次のルール セットは、マルチレベル パーティションに適用されます。これは、パーティション化されたテーブルのルールと使用上の注意に一覧表示されている一般的なルール セット(すべてマルチレベル パーティションにも適用される)に加えて適用されるものです。

パーティション式は複数の列参照を持つことができる一方で、列はプライマリ インデックスの1つ以上のパーティション式で参照が可能なので、こういったパーティション スキームを定義する有効性を考慮する必要があります。最も役立つパーティション式は、プライマリ インデックスの他のパーティション式が参照しない列への参照を1つだけ持つパーティション式です。
  • PARTITION BY句で複数のパーティション式を指定する場合、そのパーティション式それぞれは、1つのRANGE_N関数またはCASE_N関数のいずれかで構成されている必要があります。この構成になっていない場合、システムはリクエスト側にエラーを返します。
  • PARTITION BY句で複数のパーティション式を指定する場合、各パーティション式で定義するパーティション数の積が4以上、9,223,372,036,854,775,807以下にならなければなりません。そうしないと、システムはリクエスト側にエラーを返します。最小値が4である理由は、複数レベル パーティションは定義により少なくとも2つのレベルを持つ必要があり、これらのレベルがそれぞれ少なくとも2つのパーティションを持つ必要があるためです。この積は、2 x 2 = 4です。

    また、指定する各パーティション式が少なくとも2つのパーティションを定義する必要があります。そうしないと、システムはリクエスト側にエラーを返します。

    このルールから、パーティション式の最大数は9,223,372,036,854,775,807であることが分かります。263 = 9,223,372,036,854,775,808であり、これは1つのテーブルに定義できるパーティションの最大数より大きい数です。

    1つまたは複数のレベルで2つ以上のパーティションを定義する場合、パーティション式の数はさらに制限されることがあります。

  • パーティション式に、システム派生列のPARTITION#L1からPARTITION#15までを含めることはできません。

    この条件が満たされない場合、システムはリクエスト側にエラーを返します。