henbeibi

Wednesday, April 30, 2008

セグメントの縮小機能

Oracle9i Database以前の未使用領域の解放は、ALTER TABLE ... DEALLOCATE UNUSEDなどを使用した最高水位標以上の領域の解放とALTER TABLE ... MOVEコマンドによる再構築や、exp/impユーティリティを使用した再構築が必要でした。

Oracle10gよりは、セグメントの縮小機能を使用することで、最高水位標以下の空き領域も含めて解放することができます。

これは、なかなかいい機能です。

特徴:
1:処理中もオンライン状態ですから、他のセッションで同じ表へのSELECT文とDML文も可能です。
2:縮小後、索引の再構築は必要ありません。
3:テーブル、MV、MVログ、インデックスに対して使用できます。
4:ALTER TABLE ... SHRINK SPACE CASCADE文を使用すると、依存オブジェクトも同時に縮小するようになります。

条件:
1:自動領域管理セグメントであること
SELECT TABLESPACE_NAME, SEGMENT_SPACE_MANAGEMENT FROM DBA_TABLESPACES
で確認。

TABLESPACE_NAME SEGMEN
------------------------------ ------
SYSTEM MANUAL
UNDOTBS1 MANUAL
SYSAUX AUTO
TEMP MANUAL
USERS AUTO
HBBUSER AUTO

2:行管理が有効になっていること
SELECT ROW_MOVEMENT FROM DBA_TABLESで確認。

ROW_MOVE
--------
ENABLED

ALTER TABLE ... ENABLE ROW MOVEMENT;で行管理を有効化する。

Labels:

0 Comments:

Post a Comment

<< Home