表の作成
CREATE TABLE [スキーマ名.]表名
(列名 データ型 [,列名 データ型...] ]
[TABLESPACE 表領域名]
[PCTFREE 開き領域割合]
[PCTUSED 使用領域割合]
[INITRANS トランザクションスロット初期数]
[MAXTRANS トランザクションスロット最大数]
[STORAGE ( [INITIAL 初期エクステントサイズ [K | M] ]
[NEXT 増分エクステントサイズ [K | M] ]
[MINEXTENTS 作成時エクステント数]
[MAXEXTENTS {最大エクステント数 | UNLIMITED}]
[PCTINCREASE エクステントサイズ拡大率])
[LOGGING | NOLOGGING]
[CACHE | NOCACHE]
[AS 副問い合わせ];
|
CACHE句・・・ディスクIOの軽減
PCTFREE・・・大きくすると行移行の回避に効果有。
PCTUSED・・・大きくすると削除処理が多く行われる表のレスポンス向上に効果有。
ALTER TABLE文を使ってエクステントを手動で割り当てる
ALTER TABLE [スキーマ名.]表名
ALLOCATE EXTENT [ (SIZE 割り当てサイズ [K | M]
[DATAFILE 'ファイル名'])];
|
ALTER TABLE文を使って表を新規セグメントに移動する
ただし、ROWIDが変わるため、索引は無効になる。(再構築する)
ALTER TABLE [スキーマ名.]表名 MOVE TABLESPACE 表領域名;
|
未使用の領域の割り当て解放
ALTER TABLE [スキーマ名.]表名 DEALLOCATE UNUSED [KEEP サイズ [K | M] ];
|
TRUNCATE
・全ての行が削除
・対応する索引も削除(削除トリガーは起動しない)
・MINEXTENTSで指定したエクステントを除くエクステントの割り当てを解放
・高水位標(ハイウォーターマーク)がリセット
列の削除
マーク付けを行ってから削除したほうがよい。
マーク付けを行った列は表の一部として扱われないようになる。
ALTER TABLE [スキーマ名.]表名 SET UNUSED COLUMN カラム名 [CASCADE CONSTRAINTS];
ALTER TABLE [スキーマ名.]表名 DROP {COLUMN カラム名|UNUSED COLUMNS}
[CASCADE CONSTRAINTS]
[CHECKPOINT 行数];
|