列ごとに、nullおよび255個までの個別の値を圧縮できます。テーブルごとに無制限の数の列を圧縮することができます。圧縮される値は各列のテーブル ヘッダーに追加されるため、この値はシステムでの行の最大長によって制約されます。
複数値圧縮のタイプ | 説明 |
---|---|
単一値 | 値が明示的に指定されない場合、デフォルトはNULLです。 |
複数値 |
|
既存のテーブルに複数値圧縮を含む新しい列を追加したり、既存の列に複数値圧縮を追加したりすることができます。また、NO COMPRESS属性を指定することにより既存の列の圧縮を削除することができます。
列にNOT NULLの制約が指定されている場合、圧縮リスト内にリテラルのNULLを指定することはできません。
COMPRESS属性を指定して定義した列を高速パスのINSERT ... SELECT操作に加えることはできません。したがって、複数値圧縮列を含んだターゲット テーブルに対してINSERT ... SELECTリクエストを実行すると、最適化ルーチンは、自身で作成するアクセス計画に高速パスの最適化を指定しません。
通常、高速パスのINSERT ... SELECTを利用できない場合のパフォーマンスの低下は、複数値圧縮を利用した場合のパフォーマンスの向上では補いきれません。
- 識別列
- LONG VARCHAR
- BLOB
- CLOB
新しいテーブルのいずれかの列のデータ型が、既存のテーブルの対応するフィールドの値と互換性がない場合は、別々のINSERTリクエストを使用して、各行をロードする必要があります。
すべての新しいデータ型がすべての既存の値と互換性がある場合(例えば、COMPRESS属性だけが変更される場合)は、INSERT … SELECTリクエストを使用することにより、1つのリクエストですべての行をコピーできます。Teradata Vantage™ - SQLデータ操作言語、B035-1146を参照してください。
セッション モードの変更については、列の複数値圧縮の追加または変更に関するルールも参照してください。
複数値圧縮、およびパフォーマンスの最適化とディスク容量の節約のための圧縮アプリケーションの詳細については、<Teradata Vantage™ - データベースの設計、B035-1094>を参照してください。