例: 基本AMPインデックスとの結合インデックスに対し、列パーティションをROW形式に変更する
以下のテーブル定義を仮定します。
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);
結合インデックスを次のように作成します。
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 ALL BUT (o_salesperson AUTO COMPRESS);
列パーティションがROW形式になるように変更します。
ALTER TABLE jOrders ADD ROW(o_bill_addr);
これにより、結合インデックス定義が次のように生成されます。
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 ALL BUT (o_salesperson AUTO COMPRESS, ROW(o_bill_addr));
基本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));