会社の人に聞かれたのでちょっと纏め。
表領域等の一度取得されたエクステントはDELETEでデータを消しただけでは解放されず未使用領域になるだけです。なのでHWMはそのままです。
HWMがそのままなのでDBA_FREE_SPACEとかで見ても容量変わりません。(DELETEじゃなくTRUNCATEすればエクステントごと消える)
圧縮オプション付きでexp後、DROP&CREATEして表領域を再構築する(10Gだったら新機能のSHRINK SPACEでもできます)必要が有ります。
http://www.shift-the-oracle.com/element/high-water-mark/rewrite-high-water-mark.html
またローカル管理領域関して、空き領域を連結するにはコアレスを明示的に発行できないため、空き領域の連結したい時も上記のようにする必要が有ります。
表領域圧縮ではなく単に未使用領域がどれくらい増えたのかを知りたいのであれば
対象テーブルをアナライズしてから以下のように調べられます。
アナライズ analyze table TEST compute statistics 測定 SELECT TO_CHAR(AVG_SPACE * BLOCKS, 'FM999,999,999,999') AS "空き領域", OWNER , TABLE_NAME FROM DBA_TABLES WHERE OWNER = 'GARA' 空き領域 OWNER TABLE_NAME ---------------- ------------------------------ ------------------------------ 39,990 GARA TEST
見た目あいてても断片化している可能性もあるのでがつっと削除した後は再構築しとくと安心な気がします。
このあたりのOTN情報が参考になる。
テーブルとインデックスの使用率を調べる
ハイウォーターマークの位置を調べる
ディクショナリからHWM以降の未使用領域を求める