てぃぐれのプログラマwiki

ワクワクに従う

CTASとUNUSED【ORACLE】

CTAS

CTAS create tabls as select

selectを使い他のテーブルからデータと構造をコピーしてテーブルを作ることができる。

移される制約はnot nullだけである。

where句を指定することでコピーしたいデータや、件数を0にするような条件句でテーブルだけ作るということもできる。これで一時表とかも作れるなら便利そう?

 

カラムのUNUSED

カラムをDROPするには時間がかかる。そこでset unused を使うと速く向こうにすることができる。しかし、dropもそうだが、一度、unusedすると元に戻すことができない。

その後、drop unusedをすることでリソースを解放できる。

外部キー制約があるときは cascade constraints をセットしてあげる。

onlineで実行するとunusedにしている途中でもDMLを実行できる。

 

MOVE tableの表領域の変更

移動中の表へのDMLは待機させられる。設定されていた索引はunusableになる。なので、移動後に索引の再構築を行わないといけない。