ALTER TABLE <エクステントの割り当てと解放> の実行
テーブルのエクステントの事前獲得によって 論理記憶域構造の断片化 の抑止やファイルのサイズ管理を行なう。
ALTER TABLE <alter_table_properties - allocate_extent_clause>
表のエクステントをマニュアルで確保する。
- ALTER TABLE table_name ALLOCATE EXTENT
( [ KEEP size ] [ DATAFILE 'file_spec' ] [ INSTANCE integer ]] )
ALTER TABLE 〜 ALLOCATE EXTENT SIZE
指定サイズのエクステントの追加
my_table に 1 テラバイト分の新規エクステントを確保する。データファイルが複数ある場合にはオラクルが選定する。
ファイルサイズの単位は [ K | M | G | T | P | E ] が使用可能。(Oracle 11g R2 時点)
ALTER TABLE my_table ALLOCATE EXTENT ( SIZE 1T ) ;
ALTER TABLE 〜 ALLOCATE EXTENT DATAFILE
使用するデータファイルを指定したエクステントの確保。
my_table に 512 メガバイト分のエクステントをデータファイル /mydir/user001.dbf 上に追加する。
ALTER TABLE my_table ALLOCATE EXTENT ( DATAFILE '/mydir/user001.dbf' SIZE 512M ) ;
ALTER TABLE 〜 DEALLOCATE UNUSED
表のエクステントで ハイウォータマーク (HWM) を超過している未使用部分を解放する。
サイズを指定しなかった場合には HWM 、INITIAL、MINEXTENTS の設定値によって最も高い位置までを解放する。
サイズを指定し、そのサイズが INITIAL または MINEXTENTS を下回って実行完了した場合には INITIAL および MINEXTENTS は書き換えられる。
解放されたエクステントは表領域に戻され、他のセグメントからも再利用可能な状態になる。
- ALTER TABLE table_name DEALLOCATE UNUSED [ KEEP size ]
my_table の データセグメント を 512 メガバイトにまで縮退させる。
ALTER TABLE my_table DEALLOCATE UNUSED KEEP 512M ;
関連事項