◼️Oracleの表領域とは
表領域とはOracleのテーブルやインデックスなどをひとまとめにする論理構造です。Oracleデータベース利用時は必ず意識する概念です。
◼️Oracle表領域とOS上のファイルの関係
表領域はOS上の複数の物理ファイルで構成でき、表領域のサイズは物理ファイルのサイズの総和となるため、物理ファイルを追加することで表領域内に格納できる領域を確保できます。
表領域を構成する一つのファイルには複数の表領域のデータはまたがることはできず、単一の表領域に属することになります。

◼️表領域の種類
表領域には通常のユーザがデータを保存する永続表領域、一時利用のデータが保存される一時表領域、操作のロールバックなどを可能にするためのUNDO表領域があります。永続表領域のなかでOracleをインストールするとSYSTEM表領域、SYSAUX表領域などは自動で作成されます。(Oracleの動作に不可欠な管理上のデータが保管される)
| 表領域名 | メモ |
|---|---|
| SYSTEM | OracleRDBMSがデータベースの管理に使用するデータを保存する重要な表領域。データディクショナリを含みます。 |
| SYSAUX | SYSTEM表領域の補助領域です。 |
| UNDOTBS1 | UNDO情報の保存に利用されます。 |
| TEMP | SQLの処理中の一時データが保存される。 |
表領域の情報を確認するsql例を以下に示します。
SELECT ts.tablespace_name, ts.status, ts.contents, ts.block_size, df.file_name, df.bytes, df.autoextensible FROM DBA_TABLESPACES ts, DBA_DATA_FILES df WHERE ts.tablespace_name = df.tablespace_name;
◼️ユーザと表領域
ユーザにはデフォルト表領域と呼ばれるデータを作成する際の保存先の表領域が指定できます。指定がないとデータベースのデフォルト表領域へ、さらにデータベースのデフォルト表領域が未指定だとSYSTEM表領域に保存されることになります。SYSTEM表領域はOracleデータベースの管理情報を保管する重要な表領域のためここに一般ユーザのデータは保存しないように明示的に表領域は指定する必要があります。
以下は指定のユーザのデフォルト表領域を確認するSQLです。
SELECT USERNAME, DEFAULT_TABLESPACE FROM DBA_USERS WHERE USERNAME = 'XXXXX';
更新履歴: 2024/12/08、2024/08/08
コメントを残す