表領域とは、Oracleデータベース内に割り当てられた領域であり、スキーマオブジェクトを格納するのに使用される。テーブルスペースとも呼ばれる。表領域自体は非スキーマオブジェクトである。
SYSTEM表領域とは、データベース作成時に作成される表領域で、データディクショナリやユーザデータなどが格納される。データディクショナリが含まれるため頻繁にI/Oが発生するので、パフォーマンスの観点からユーザデータは別の表領域に格納することが望ましい。SYSTEM表領域は、データベースを作成するときに自動的に作成される。
SYSAUX表領域とは、SYSTEM表領域の補助表領域であり、デフォルトのデータ格納場所として使用される。SYSAUX表領域は、データベースを作成するときに自動的に作成される。
TEMP表領域はデフォルトの一時表領域で、SQL分の処理中に生成される一時データが格納される。
USERS 表領域は、永続的なユーザー・オブジェクトを格納する表領域である。
表領域に関するSQL文を以下に示す。
CREATE TABLESPACE は、表領域を作成するSQL文である。
ALTER TABLESPACE は、表領域を変更するSQL文である。
DROP TABLESPACE は、表領域を削除するSQL文である。
表領域に関するデータディクショナリ・ビューを以下に示す。
※ALL_TABLESPACES というデータディクショナリ・ビューは存在しない。
DBA_DATA_FILES は、データベース内すべてのデータファイルを示すデータディクショナリ・ビューである。
DBA_TABLESPACES は、データベース内すべての表領域を示すデータディクショナリ・ビューである。
USER_TABLESPACES は、現在のユーザがアクセスできる表領域を示すデータディクショナリ・ビューである。
表領域に関するシステム権限を以下に示す。
ALTER TABLESPACE は、SQL の ALTER TABLESPACE 文で表領域を変更できるシステム権限である。
CREATE TABLESPACE は、SQL の CREATE TABLESPACE 文で表領域を作成できるシステム権限である。
DROP TABLESPACE は、SQL の DROP TABLESPACE 文で表領域を削除できるシステム権限である。
UNLIMITED TABLESPACE は、表領域を無制限に使用できるシステム権限である。UNLIMITED TABLESPACE システム権限はユーザに付与できるが、ロールには付与できない。