ADDオプション - 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
ADDオプションを使用すると、パーティション レベルに対して追加のパーティション数を予約しておき、後でALTER TABLE文を使用してパーティション レベルにパーティションを追加することができます。以下のルールが行パーティションまたは列パーティションのADD句に当てはまります。
  • パーティション レベルにADD句を指定した場合、そのパーティション レベルの最大パーティション数は、そのレベルに定義されたパーティション数に、ADD句で指定した一定値を加算した数になります。

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

  • 行パーティション レベルの最大パーティション数は、少なくとも2にする必要があります。

    このエラーが起こるのは、行パーティション レベルに1つのパーティションだけを定義した場合に、同時にADD 0を指定したとき、またはADDオプションを指定しないために最大数が2以上に増えないときです。以下のいずれかがその原因となります。

    • 単一レベル パーティションでは、組み合わせパーティションの最大数は、このパーティション レベルの最大パーティション数と同じです。その値は9,223,372,036, 854,775,807を超えてはなりません。
    • 2バイト パーティションの場合、最初のレベルのパーティションの最大数は、組み合わせパーティションの最大数が65,535を超えない範囲での最大数になります。
    • 8バイト パーティションの場合、最初のレベルのパーティションの最大数は、組み合わせパーティションの最大数が9,223,372,036,854,775,807を超えない範囲での最大数になります。
  • 行レベル パーティションが2バイト パーティションになっているレベルのうち、ADD句を指定しないレベル順のレベルについては、パーティションの最大数は、8バイト パーティションにならずに済む最大値です。

    それ以外の場合、このレベルの最大パーティション数は、9,223,372,036,854,775,807を超えない最大値です。

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

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

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

  • 列パーティション レベルにADD句を指定しておらず、そのレベルだけがパーティション レベルの場合、パーティションの最大数は、内部使用のための2つを含めて、65,534です。
  • 次のすべての条件が当てはまる場合、列パーティション レベルのパーティションの最大数は、定義されている列パーティション数に10を加算した数になります。
    • 列パーティション レベルに対してADD句を指定していない。
    • テーブルまたは結合インデックスが行パーティションも持っている。
    • 行パーティション レベルの少なくとも1つで、ADD句が指定されていない。

      この場合、列パーティション レベルのデフォルトのADD句は、ADD 10です。

  • 次のすべての条件が当てはまる場合、列パーティション レベルの最大パーティション数は、パーティションが8バイト パーティションにならずに済む最大値です。
    • 列パーティション レベルに対してADD句を指定していない。
    • テーブルまたは結合インデックスが行パーティションも持っている。
    • すべての行パーティション レベルにADD句を指定している。
    • 定義されている列パーティション数に10を加算した数を、列パーティションの最大数として使用している。この場合、列パーティションは2バイト パーティションになります。

      それ以外の場合、列パーティション レベルのパーティションの最大数は9,223,372,036, 854,775,807になります。