CREATE TABLESPACE は表領域を作成する SQL 文である。表領域とは、表にデータを格納するための論理的な記憶領域である。データを永続的に保存するために、物理的なデータ・ファイルと関連付いている。
CREATE [BIGFILE|SMALLFILE] TABLESPACE tablespace_name
DATAFILE filespec [,filespec ...]
[DEFAULT STORAGE INITIAL 初期サイズ
NEXT 増加サイズ
MINEXTENTS エスクテント最小数
MAXEXTENTS エスクテント最大数
PCTINCREASE エスクテント増加率 ]
[ ENCRYPTION algorrithm ]
BIGFILE表領域を作成する。BIGFILE表領域はひとつのデータファイル又は一時ファイルのみであり、このファイルには最大約40億(232)ブロックを格納できる。
SMALLFILE表領域を作成する。SMALLFILE表領には1022のデータファイル又は一時ファイルを含めることができ、それぞれのファイルに最大で約400万(222)のブロックを格納することができる。
作成する表領域の名前を指定する。
path [SIZE filesize] [REUSE] [AUTOEXTEND ON [NEXT extendsize [MAXSIZE maxsize]]]
表領域とデータベースファイルを新規作成する例を以下に示す。
SQL> CREATE TABLESPACE tbs1 DATAFILE '/oradata/foo/tbs1.dbf' SIZE 50M;
既存のデータベースファイルを再利用して表領域を作成する例を以下に示す。
SQL> CREATE TABLESPACE tbs1 DATAFILE '/oradata/foo/tbs1.dbf' REUSE;
自動拡張を有効にする。
エクステントがさらに必要になった場合に、データベースファイルに自動的に割り当てられるディスク領域の増分サイズをバイト単位で指定する。
データベースファイルの自動拡張で使用されるディスク領域の最大サイズを指定する。
表領域内に作成されるすべてのオブジェクトに対するデフォルトの記憶域パラメータを指定する。
オブジェクトの第1エクステントのサイズをバイト数で指定する。単位としてK(キロ)、M(メガ)、G(ギガ)、T(テラ)、P(ペタ)又はE(エクサ)を指定することもできる。
オブジェクトに割り当てる次のエクステントのサイズをバイト数で指定する。単位としてK(キロ)、M(メガ)、G(ギガ)、T(テラ)、P(ペタ)又はE(エクサ)を指定することもできる。
SQL> CREATE TABLESPACE example_ts
2 DATAFILE '$ORACLE_HOME/dbs/example_ts.dbf' SIZE 1M
3 ENCRYPTION USING 'AES256'
4 DEFAULT STORAGE (ENCRYPT);
表領域を作成するには、CREATE TABLESPACE システム権限が必要である。
SYSAUX表領域を作成する場合は、SYSDBAシステム権限が必要である。