16.20 - ADD (column_name ) AUTO COMPRESS - Teradata Database - Teradata Vantage NewSQL Engine

Teradata Vantage™ SQLデータ定義言語 構文規則および例

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Release Date
2019年3月
Content Type
プログラミング リファレンス
Publication ID
B035-1144-162K-JPN
Language
日本語 (日本)

列パーティションに自動圧縮を追加します。テーブルが空の場合も、データが含まれている場合も、既存の列のセットに圧縮を追加できます。自動圧縮は、列パーティション テーブルにのみ指定できます。同じALTER TABLEリクエストで、列パーティションの自動圧縮またはパーティション ストレージを複数回変更することはできません。

AUTO COMPRESS
自動圧縮を列または列パーティションに適用します。AUTO COMPRESSがデフォルトです。Teradata Databaseは、コンテナ単位で物理行に自動圧縮を適用します。効率を向上するために、システムは前のコンテナに選択した自動圧縮方法(自動圧縮を使用しない場合も含めて)を使用することがあります(効率が良くなる場合)。
NO AUTO COMPRESS
この列を含む列パーティションは自動圧縮されません。

基本AMPインデックスとの結合インデックスに対し、列パーティションをAUTO COMPRESSに変更する

次のテーブル定義があるとします。

CREATE TABLE Orders
    ( o_orderkey INTEGER NOT NULL,
      o_custkey INTEGER,
      o_orderstatus CHAR(1) CASESPECIFIC,
      o_totalprice DECIMAL(13,2) NOT NULL,
      o_ordertsz TIMESTAMP(6) WITH TIME ZONE NOT NULL,
      o_comment VARCHAR(79),
      o_salesperson VARCHAR(5),
      o_ordersubstatus CHAR(1) CASESPECIFIC,
      o_comment_ext1 VARCHAR(79),
      o_comment_ext2 VARCHAR(79),
      o_ship_addr VARCHAR(500),
      o_bill_addr VARCHAR(200),
      o_alt_ship_addr VARCHAR(500),
      o_alt_bill_addr VARCHAR(200),
      o_item_count INTEGER )
  PRIMARY AMP INDEX (o_orderkey)
  PARTITION BY (
    COLUMN AUTO COMPRESS ALL BUT ( 
                     o_ordersubstatus NO AUTO COMPRESS,
                     (o_comment_ext1, o_comment_ext2) NO AUTO COMPRESS,
                     ROW(o_ship_addr, o_bill_addr) NO AUTO COMPRESS,
                     COLUMN(o_alt_ship_addr, o_alt_bill_addr) ),
  UNIQUE INDEX (o_orderkey);

基本AMPインデックスとの結合インデックスを作成します。

CREATE JOIN INDEX jOrders AS
    SELECT ROWID AS rw, o_custkey, o_salesperson, o_bill_addr
      FROM Orders
  PRIMARY AMP INDEX (o_custkey)
  PARTITION BY COLUMN NO AUTO COMPRESS;

次のALTER TABLE文により、列パーティションの自動圧縮が追加されます。

ALTER TABLE jOrders ADD (o_salesperson) AUTO COMPRESS;

例: 自動圧縮を適用するための単一列の結合インデックスパーティションの変更

この例では、前述の例で使用したように、ordersテーブルで定義された結合インデックスに次の定義を使用します。システム デフォルトは、AUTO COMPRESSです。ただし、テーブル作成のリクエストで、列にNO AUTO COMPRESSを設定するようにデフォルトを上書きしています。

     CREATE JOIN INDEX j_orders AS
       SELECT ROWID AS rw, o_custkey, o_salesperson, o_bill_addr
       FROM orders
     PARTITION BY COLUMN NO AUTO COMPRESS;

自動圧縮を適用するように、単一の列パーティションo_salespersonを変更します。

     ALTER TABLE j_orders 
       ADD (o_salesperson) AUTO COMPRESS;

このリクエストでは、列o_salespersonで構成される単一の列パーティションに自動圧縮が適用されるように変更することで、j_ordersの定義を変更しています。

     CREATE JOIN INDEX j_orders AS
       SELECT ROWID AS rw, o_custkey, o_salesperson, o_bill_addr
       FROM orders
     PARTITION BY COLUMN NO AUTO COMPRESS ALL BUT
                                         (o_salesperson AUTO COMPRESS);

ここで、単一の列パーティションo_bill_addrを変更して、ROW記憶域形式が適用されるようにします。

     ALTER TABLE j_orders 
       ADD ROW(o_bill_addr);

このリクエストでは、j_ordersの定義を、次のように変更しています。

     CREATE JOIN INDEX j_orders AS
       SELECT ROWID AS rw, o_custkey, o_salesperson, o_bill_addr
       FROM Orders
     PARTITION BY COLUMN NO AUTO COMPRESS ALL BUT
                         (o_salesperson AUTO COMPRESS,
                                          ROW(o_bill_addr));