Oracle 9i 以前は、テーブルからデータを大量に削除した時などに、セグメントを縮小して空き領域を解放しようと思ったら、ALTER TABLE ~ MOVE コマンドなどを利用してテーブルを再構築するしかありませんでした。 ALTER TABLE テーブル名 MOVE TABLESPACE 表領域名; しかし、Oracle 10g から導入された ALTER TABLE ~ SHRINK SPACE コマンドを利用すれば、もっと手軽にセグメントの縮小を行うことができます。 ALTER TABLE テーブル名 SHRINK SPACE; MOVE と比較すると、SHRINK SPACE には以下のような利点があります。 オンライン中に実行できる MOVE の場合は表に排他ロックがかけられるが、SHRINK SPACE の場合は行排他ロックしかかけられない。 大量の作業領域を必要としない