列パーティション テーブルのパーティション レベルに対するADDオプションの使用に関するルール - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/jpx1556733107962.ditamap
dita:ditavalPath
ja-JP/jpx1556733107962.ditaval
dita:id
B035-1184
Product Category
Software
Teradata Vantage
  • パーティション レベルには、ADDオプションを指定できます。ADDキーワードの後に指定するBIGINT数に、そのレベルに定義するパーティション数を加算した数が、そのレベルに定義できるパーティションの最大数になります。

    最大値は9,223,372,036,854,775,807です。

    単一レベル パーティションでは、組み合わせパーティションの最大数は、そのパーティション レベルの最大パーティション数と同じです。

  • 列パーティション レベルにADDオプションを指定しておらず、そのレベルだけがパーティション レベルの場合、パーティションの最大数は、内部使用のための2つを含めて、65,534です。
  • 列パーティション レベルにADDオプションを指定しておらず、以下にリストした項目も当てはまる場合には、パーティションは行ヘッダー内に2バイトを使用して格納され、行パーティション レベルの最大パーティション数は、定義されている列パーティション数に10を加算した数になります。このケースのデフォルト数はADD 10です。
    • テーブルに1つ以上の行パーティション レベルも定義されている。
    • 行パーティション レベルの少なくとも1つで、ADDオプションが指定されていない。

    列パーティション レベルの最大パーティション数は、8バイトのパーティションを使用しないで済む最大値です。それ以外の場合、列パーティション レベルの最大パーティション数は、9,223,372,036, 854,775,807を超えない最大値です。

    単一レベル パーティションでは、組み合わせパーティションの最大数は、このパーティション レベルの最大パーティション数と同じです。

  • ADDオプションを指定していない各パーティション レベルについては、レベル順に、その行 パーティション レベルの最大パーティション数を、Teradata Databaseが以下のようにして決定します。
    • このレベルおよびこれより低いレベルの行パーティション レベルにADD句なしで定義されている数。これは、パーティションを2バイト パーティションとし、8バイト パーティションを使用しないで済む最大値です。
    • それ以外の場合、このレベルの最大パーティション数は、9,223,372,036,854,775,807を超えない最大値です。

      そのような最大レベルがない場合、システムはリクエスト側にエラーを返します。

  • ADD 0を指定すると、パーティション レベルについて、そのレベルの最大パーティション数が、定義されているパーティション数と同じであることを明示的に指定できます。

    これが役立つのは、あるパーティション レベルについてデフォルトのADD 10を上書きして、他のレベルのパーティション数を増やす場合です。

    また、ADD句を指定しないで超過分のパーティションを割り当てないことにより、行パーティション レベルのパーティション数を低くしたい場合にも役立ちます。

  • CREATE TABLE文で最初にパーティションが明示的に割り当てられた後に、超過したパーティションがどのパーティション レベルに追加されるかを次のテーブルにまとめます。
    パーティションの種類 その他の条件 Teradata Databaseが残りの組み合わせパーティションをできるだけ多く追加する対象
    シングルレベル   唯一の行または列パーティション レベル。

    ADD句を指定した場合、Teradata Databaseはそれを上書きします。

    マルチレベル すべての行パーティション レベルにADD句が指定されているが、ADD句を指定されていない列パーティション レベルがある。 列パーティション レベル。

    最初のパーティション レベルにはこれを追加する必要がありません。

    列パーティション レベルと、少なくとも1つの行パーティション レベルにADD句が指定されていない(どの行パーティション レベルにもADD句が指定されていない場合を含む)。 列パーティション レベルでデフォルトのADD 10を使用した後のADD句のない最初の行パーティション レベル。

    ADD句を指定されていない行パーティション レベルが他にもある場合は、各行パーティション レベルについてレベル順にこれを繰り返します。

    列パーティション レベルにADD句が指定されており、少なくとも1つの行パーティション レベルにADD句が指定されていない。

    列パーティション レベルが存在せず、少なくとも1つの行パーティション レベルにADD句が指定されてない。

    どの行パーティション レベルにもADD句が指定されていない場合を含みます。

    ADD句のない最初の行パーティション レベル。

    ADD句を指定されていない行パーティション レベルが他にもある場合は、各行パーティション レベルについてレベル順にこれを繰り返します。

    すべてのパーティション レベルにADD句が指定されている場合、またはこのテーブルの次の欄に記載されているとおりの処理を残りの組み合わせパーティションに適用した後。 最初の行または列パーティション レベル。最初のパーティション レベルにADD句が指定されている場合、その指定は上書きされます。

    Teradata Databaseは、他にレベルがあれば、2番目のレベルから最後のレベルまで、各レベルについてこれを繰り返します。