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
;
select tablespace_name,block_size,contents,logging,status,segment_space_management,extent_management
from DBA_TABLESPACES
;
表領域一覧出力例
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
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