表領域の話。忘れるのでメモ。
セグメント管理(もしくはセグメント領域管理)は、セグメント内の空き領域の管理。セグメント内のお話。
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;