列パーティション テーブルに関する一般的なルール - 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
  • 列パーティション テーブルとして定義できるのは、標準的な実データ テーブルだけです。
    次のテーブル タイプは、列パーティション テーブルとしては定義できません
    • グローバル一時テーブル
    • 揮発テーブル
    • グローバル一時トレース テーブル
    • キュー テーブル
      NO QUEUEを列パーティション テーブルに対して指定できます
    • エラー テーブル
  • 列パーティション テーブルをSETテーブルとして作成することはできません。

    すべてのセッション モードのうち、列パーティション テーブルのデフォルトかつ唯一有効なテーブル タイプは、MULTISETです。したがって、テーブル タイプをMULTISETとして明示的に指定しない場合、列パーティション テーブルはデフォルトでいつもMULTISETテーブルになります。

  • PARTITION BY句のパーティション式の中でパーティション レベルとしてCOLUMNキーワードを指定した場合、そのテーブルは列パーティション テーブルになります。

    1つのテーブル定義で、複数のパーティション レベルにCOLUMNを指定することはできません。

  • 列パーティション テーブルには行レベル セキュリティ権限を割り当てることができます。

    列パーティション テーブルの列は、行レベル セキュリティ制約として適格である場合、行レベル セキュリティ列として定義できます。行レベル セキュリティ制約および権限の詳細については、<Teradata Vantage™ - Advanced SQL Engineセキュリティ管理ガイド、B035-1100>および<Teradata Vantage™ - SQLデータ制御言語、B035-1149>を参照してください。

    自動圧縮は、1つ以上の行レベル セキュリティ制約列を含む列パーティションに適用できます。

  • AUTO COMPRESSまたはNO AUTO COMPRESSのいずれかを、列パーティションのデフォルトとして指定できます。いずれも明示的に指定しない場合、Teradata DatabaseはAUTO COMPRESSを使用します。
  • 列リストまたはPARTITION BY句の任意ので、パーティション列をグループ化できます。

    列リストの中でパーティション列のグループ化を指定する方法は、PARTITION BY句のCOLUMN指定でグループ化するよりも簡単ですが、柔軟性が劣ります。

  • Teradata Databaseは、列パーティション テーブルのパーティション レベル定義からパーティションCHECK制約を取得します。パーティションCHECK制約の詳細については、2バイト パーティションでパーティション化されたテーブルに対するパーティションCHECK制約および8バイト パーティションでパーティション化されたテーブルに対するパーティションCHECK制約を参照してください。

    このパーティション化制約のテキストは、16,000文字を超えてはなりません。

  • 列パーティション テーブルの文字データ列にCHARACTER SET KANJI1を指定することはできません。

    その代わりに、CHARACTER SET UNICODEを指定してください。

  • CREATE TABLE … ASsource_table文は、ターゲット テーブルに対してインデックス リストを指定しない場合、ソース テーブルの列パーティション テーブルのインデックスとパーティションをターゲット テーブルにコピーします。

    Teradata Databaseは、パーティションをコピーする場合にソース パーティションに列パーティションが含まれていると、次の例外を除き、パーティションの一部として列パーティション定義をコピーします。ユーザーがターゲット テーブルの列リストでグループ化を指定した場合、Teradata Databaseは、新しいテーブルの列パーティションに対して、ソース テーブルで定義されているグループ化ではなく、ユーザーの指定したグループ化を使用します。

  • 列パーティション テーブルに対するCREATE ERROR TABLE文では、そのテーブルに付随するエラー テーブルが作成されます。

    エラー テーブルは、非パーティションNoPIテーブルとして作成された場合を除き、非列パーティション テーブルと同様に作成されます。

  • 列パーティション テーブルにハッシュ インデックスを作成することはできません。ハッシュ インデックスは基礎となる実テーブルのプライマリ インデックスを継承して作成されるのに対して、列パーティション テーブルにはプライマリ インデックスがないからです。
  • MERGE文を使用して、列パーティション ターゲット テーブルの行を更新したり、列パーティション ターゲット テーブルに行を追加したりすることはできません。
    MERGE文で、ソースの列パーティション テーブルからプライマリ インデックスの付いたターゲット テーブルを更新したり、行を挿入したりすることはできます。
  • テーブルがパーティション化されている場合、そのフォールバック行は、その基本データ行と同一にパーティション化されます。

    基本データ行にプライマリ インデックスまたは基本AMPインデックスがある場合は、フォールバック データ行にも同じプライマリ インデックスまたは基本AMPインデックスがあります。

    基本データ行にプライマリ インデックスまたは基本AMPインデックスがない場合は、フォールバック データ行にもプライマリ インデックスまたは基本AMPインデックスはありません。

  • 列パーティションでは、さなざまなパーティション式や列グループ化を定義できるので、組み合わせパーティションの数もさまざまです。特定のパーティションを定義することに意味があるかどうか、パフォーマンスと記憶装置にどんな影響があるかを検討する必要があります。

    列パーティションに関するパフォーマンスの考慮事項については、列パーティション テーブルのパフォーマンスに関する問題を参照してください。

  • 次の表は、NO AUTO COMPRESSオプションの使用に関するルールを示しています。
オプション 説明
列パーティションに対するAUTO COMPRESS パーティションのサイズを削減できる圧縮方式が見つかった場合、物理行に対して自動圧縮を適用します。

パーティションのサイズを削減できる圧縮方式をTeradata Databaseが見つけられない場合は、圧縮方式を適用しません。

テーブルの列リストの中の列パーティションに対するNO AUTO COMPRESS 物理行に自動圧縮を適用しません。

この場合でも、ユーザーの指定した圧縮があれば、Teradata Databaseはそれを適用does。また、COLUMN形式で指定された列パーティションには、行ヘッダー圧縮を適用します。