OSのデータファイル>>表領域>>セグメント(テーブル/インデックス)という関係になりますのでDB内のテーブルがどの表領域に格納されている事がわかれば、OSが管理するどのファイルに存在するのかがわかります。(TEMP表領域だけは、「一時ファイル」で構成されます。どちらもOS下で管理される物理ファイルですが、その他の表領域に使われる「データファイル」とは内容が異なります。データファイルはDBA_FREE_SPACEで使用可能領域(エクステント)が確認できますが、一時ファイルはこちらには存在しません。このあたりからもデータファイルとは異なる事が感じられます)
表領域にはいくつかの種類がありそれぞれ役割が決まっています
表領域には大別して5つの表領域があります。基本以下5つの表領域はデフォルトで作成されて、主な役割は以下の通りです。
1 | SYSTEM表領域 | 各種データディクショナリや監査証跡がデフォルトで格納される。 |
2 | SYSAUX表領域 | AWRの情報やASH(Active Session History)、SPMのベースラインデータが格納される |
3 | UNDO表領域 | トランザクションがコミットされるまでのロールバックデータが格納される。(シングルブロックでのアクセスしかできない点注意) |
4 | TEMP(一時)表領域 | order by句や、group by句で一時的に利用される領域。通常はPGAが利用されるけれどここで賄えない場合この領域が利用される。(そうなると当然遅くなる) 一時的なデータが入るだけなのでバックアップの対象外(RMAN) |
5 | USERS表領域 | 一般ユーザのデフォルト表領域として指定されている。通常システム構築をする場合「ユーザ表領域」として利用目的に合わせて新たに表領域を追加して運用します。 |
DBA_TABLESPACESを参照して確認します
表領域一覧出力SQL
select tablespace_name,block_size,contents,logging,status,segment_space_management,extent_management from DBA_TABLESPACES ;
表領域一覧出力例
SQL> select tablespace_name,block_size,contents,logging,status,segment_space_management,extent_management
2 from DBA_TABLESPACES
3 ;
TABLESPACE_NAME BLOCK_SIZE CONTENTS LOGGING STATUS SEGMENT_SPAC EXTENT_MANAGEMENT
---------------- ---------- ---------- ---------- -------- ------------ -----------------
SYSTEM 8192 PERMANENT LOGGING ONLINE MANUAL LOCAL
SYSAUX 8192 PERMANENT LOGGING ONLINE AUTO LOCAL
UNDOTBS1 8192 UNDO LOGGING ONLINE MANUAL LOCAL
TEMP 8192 TEMPORARY NOLOGGING ONLINE MANUAL LOCAL
USERS 8192 PERMANENT LOGGING ONLINE AUTO LOCAL
TBS01 8192 PERMANENT LOGGING ONLINE AUTO LOCAL
TBS02 8192 PERMANENT NOLOGGING ONLINE AUTO LOCAL
7行が選択されました。
SQL>
SQL*Plusでの表示用
set lin 200 COLUMN TABLESPACE_NAME FORMAT A16 COLUMN CONTENTS FORMAT A10 COLUMN LOGGING FORMAT A10 COLUMN STATUS FORMAT A8 COLUMN EXTENT_MANAGEMENT FORMAT A17