Gblog

おもにTips

セグメント管理 [ AUTO | MANUAL ] / エクステント管理 [ LOCAL | DICTIONARY ]

表領域の話。忘れるのでメモ。

 

セグメント管理(もしくはセグメント領域管理)は、セグメント内の空き領域の管理。セグメント内のお話。

SEGMENT SPACE MANAGEMENT [ AUTO | MANUAL ]

 

AUTO(自動) はビットマップ管理。25% ごとの 4段階でブロックの使用状況を管理するアレ。

MANUAL(手動) は空きリスト管理。PCTUSED で閾値を設定してフリーリストで管理するアレ。

 

今どきは、AUTO 一択。

 

 

エクステント管理は、表領域内のエクステントの管理。表領域内のお話。

EXTENT MANAGEMENT [ LOCAL | DICTIONARY ]

 

ローカル管理とディクショナリ管理の 2種類ですが、もはやディクショナリ管理は死滅したか?

 

ローカル管理はエクステントの管理方法が 2種類ある。

EXTENT MANAGEMENT LOCAL [ AUTOALLOCATE | UNIFORM ]

 

AUTOALLOCATE は自動割り当てで、勝手にサイズを決めてエクステントを割り当ててくれる。
UNIFORM はサイズ固定。

 

管理が楽という理由で AUTO ALLOCATION としているケースをたまに見ますがホントにそうか?管理はどっちも楽なような。むしろ UNIFORM の方が断片化しにくい分、楽か?

 

格納するセグメントのサイズ傾向から判断かな。

 

CREATE TABLESPACE 文はこんな。

CREATE TABLESPACE ts DATAFILE '$ORACLE_BASE/oradata/db1/ts_1.dbf' SIZE 10M AUTOEXTEND ON
   EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M
   SEGMENT SPACE MANAGEMENT AUTO;