注:この情報はすべて、ここからダウンロードできるTeradataマニュアルに記載されています。そこから、画面の右上で関心のあるリリースを選択できます。
既存の列に値リスト圧縮を追加する
テーブルが排他的にロックされることを許容できるテーブルのサイズと期間に応じて、を使用して値リストの圧縮を追加できますALTER TABLE
。圧縮値リストのテーブルヘッダーに十分なプレゼンスビットがある場合、操作はかなり速くなる可能性があります。そうでない場合、かなり集中的になります。
ALTER TABLE MyDB.MyTable ADD SEGMENT CHAR(10)
COMPRESS ('AM', 'CAM', 'KAM', 'KO', 'PSHC', 'RES', 'SBS');
それ以外の場合は、値リストの圧縮が定義された新しいテーブルを作成し、統計を元の本番テーブルから新しいテーブルにコピーし、データを新しいテーブルに挿入してから、テーブルの名前を変更して新しいテーブルを本番として導入できます。テーブル。
既存のテーブルへの列の追加
テーブルヘッダーに未使用のプレゼンスビットがある場合、ALTER TABLEを使用してこの列を追加すると、かなり迅速な操作になります。圧縮された値リストをキャプチャするのに十分なプレゼンスビットがALTER TABLE
ない場合は、推奨されるアプローチではありません。
ALTER TABLE MyDB.MyTable ADD pot_klasse CHAR(1)
CHARACTER SET LATIN NOT CASESPECIFIC COMPRESS ('B','U');
プライマリインデックスの変更
場合によります。
を使用して新しいテーブルを作成しなくても、テーブルのPIを変更できる場合がありますALTER TABLE
。(たとえば、非一意から一意)ただし、多くの場合、新しいテーブルを作成し、元のテーブルから新しいテーブルにデータを挿入する必要があります。(例:列の追加、プライマリインデックスの列のデータ型の変更など)