ALTER TABLESPACEは、既存の表領域(テーブルスペース)を変更するSQL文である。
既存の表領域の名前を変更するには、ALTER TABLE文にRENAME TO句を指定する。
ALTER TABLESPACE oldname RENAME TO newname
既存の表領域にデータファイルを追加するには、ALTER TABLE文にADD DATAFILE句を指定する。
ALTER TABLESPACE name
ADD DATAFILE filename
SIZE initialsize
AUTOEXTEND [ON|OFF]
NEXT nextsize
MAXSIZE maxsize
データファイルを追加する例を示す。
ALTER TABLESPACE USERS ADD DATAFILE '/u01/app/oracle/oradata/orcl/users02.dbf' SIZE 10M
表領域のデータファイルを削除するには、ALTER TABLE文にDROP DATAFILE句を指定する。
ALTER TABLESPACE name DROP DATAFILE filename
データファイルを削除する例を示す。
ALTER TABLESPACE tblspc01 DROP DATAFILE 'tblspc01.dbf'
BIGFILE表領域内のデータファイルに対して、自動拡張を使用可能にする。
ALTER TABLESPACE example AUTOEXTEND ON
自動拡張の増分は、1データブロックのサイズとなる。
自動拡張の増分サイズをNEXT
句で具体的に指定することもできる。エクステントがさらに必要になった場合、データファイルに自動的に割り当てられるディスク領域のサイズをバイト数で指定する。
単位としてK(キロ)、M(メガ)、G(ギガ)、T(テラ)、P(ペタ)又はE(エクサ)を指定することもできる。
ALTER TABLESPACE example AUTOEXTEND ON NEXT 10M
データファイルの自動拡張で使用されるディスク領域の最大サイズをMAXSIZE
句で指定することもできる。
ALTER TABLESPACE example AUTOEXTEND ON NEXT 10M MAXSIZE 50M
データファイルの自動拡張で使用されるディスク領域の最大サイズをバイト数で指定する。単位としてK(キロ)、M(メガ)、G(ギガ)、T(テラ)、P(ペタ)又はE(エクサ)を指定することもできる。
データファイルに割り当てられるディスク領域のサイズを制限しない。
ALTER TABLESPACE example AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
BIGFILE表領域内のデータファイルに対して、自動拡張を使用不可能にする。
ALTER TABLESPACE example AUTOEXTEND OFF
一時表領域に使用される領域の大きさを縮小する。一時表領域の大きさは、表領域の他の記憶域属性を満たしていることを条件として可能なかぎり縮小される。一時表領域以外の表領域に対しては、SHRINK SPACE 句を指定できない。
ALTER TABLESPACE tablespace SHIRINK SPACE [KEEP size]
一時表領域に使用される領域のサイズを縮小する例を以下に示す。
SQL> ALTER TABLESPACE TEMP SHIRINK SPACE;
表領域を変更するには、ALTER TABLESPACE システム権限が必要である。
bigfile表領域のサイズを変更するには、ALTER TABLESPACE 文を使う。
SQL> ALTER TABLESPACE test1 RESIZE 10G;
※smallsize表領域のサイズを変更するには、ALTER DATABASE 文を使う。
表領域が bigfile か smallfile かを確認するには、DBA_TABLESPACES データ・ディクショナリ・ビューを問い合わせる。
SQL> SELECT bigfile FROM DBA_TABLESPACES WHERE TABLESPACE_NAME = 'test1';