Oracle Databaseの表領域 (TABLESPACE)

表領域とは、Oracleデータベース内に割り当てられた領域であり、スキーマオブジェクトを格納するのに使用される。テーブルスペースとも呼ばれる。表領域自体は非スキーマオブジェクトである。

目次

  1. 1 種類
    1. 1.1 SYSTEM
    2. 1.2 SYSAUX
    3. 1.3 TEMP
    4. 1.4 USERS
  2. 2 SQL
    1. 2.1 CREATE TABLESPACE
    2. 2.2 ALTER TABLESPACE
    3. 2.3 DROP TABLESPACE
  3. 3 データディクショナリ・ビュー
    1. 3.1 DBA_DATA_FILES
    2. 3.2 DBA_TABLESPACES
    3. 3.3 USER_TABLESPACES
  4. 4 権限
    1. 4.1 ALTER TABLESPACE
    2. 4.2 CREATE TABLESPACE
    3. 4.3 DROP TABLESPACE
    4. 4.4 UNLIMITED TABLESPACE

1 種類

1.1 SYSTEM

SYSTEM表領域とは、データベース作成時に作成される表領域で、データディクショナリやユーザデータなどが格納される。データディクショナリが含まれるため頻繁にI/Oが発生するので、パフォーマンスの観点からユーザデータは別の表領域に格納することが望ましい。SYSTEM表領域は、データベースを作成するときに自動的に作成される。

1.2 SYSAUX

SYSAUX表領域とは、SYSTEM表領域の補助表領域であり、デフォルトのデータ格納場所として使用される。SYSAUX表領域は、データベースを作成するときに自動的に作成される。

1.3 TEMP

TEMP表領域はデフォルトの一時表領域で、SQL分の処理中に生成される一時データが格納される。

1.4 USERS

USERS 表領域は、永続的なユーザー・オブジェクトを格納する表領域である。

2 SQL

表領域に関するSQL文を以下に示す。

2.1 CREATE TABLESPACE

CREATE TABLESPACE は、表領域を作成するSQL文である。

2.2 ALTER TABLESPACE

ALTER TABLESPACE は、表領域を変更するSQL文である。

2.3 DROP TABLESPACE

DROP TABLESPACE は、表領域を削除するSQL文である。

3 データディクショナリ・ビュー

表領域に関するデータディクショナリ・ビューを以下に示す。

※ALL_TABLESPACES というデータディクショナリ・ビューは存在しない。

3.1 DBA_DATA_FILES

DBA_DATA_FILES は、データベース内すべてのデータファイルを示すデータディクショナリ・ビューである。

3.2 DBA_TABLESPACES

DBA_TABLESPACES は、データベース内すべての表領域を示すデータディクショナリ・ビューである。

3.3 USER_TABLESPACES

USER_TABLESPACES は、現在のユーザがアクセスできる表領域を示すデータディクショナリ・ビューである。

4 権限

表領域に関するシステム権限を以下に示す。

4.1 ALTER TABLESPACE

ALTER TABLESPACE は、SQLALTER TABLESPACE 文で表領域を変更できるシステム権限である。

4.2 CREATE TABLESPACE

CREATE TABLESPACE は、SQL の CREATE TABLESPACE 文で表領域を作成できるシステム権限である。

4.3 DROP TABLESPACE

DROP TABLESPACE は、SQL の DROP TABLESPACE 文で表領域を削除できるシステム権限である。

4.4 UNLIMITED TABLESPACE

UNLIMITED TABLESPACE は、表領域を無制限に使用できるシステム権限である。UNLIMITED TABLESPACE システム権限はユーザに付与できるが、ロールには付与できない。