表在删除資料的時候高水位線不降低,隻是把塊中的此行資料變為删除狀态。如此一來,表中删除的資料多時候,表就會浪費很多空間。如下所示,表中的14天記錄占用了28個塊。
我們利用shrink space來降低表的高水位線。
1.修改表使其行可以移動
SQL> alter table scott.emp enable row movement;
Table altered.
2.使用shrink space來收縮空間
SQL> alter table scott.emp shrink space;
Table altered.
3.執行表資訊統計
SQL> exec dbms_stats.gather_table_stats(ownname=>'scott',tabname=>'emp',cascade=>true);
4.檢視塊資訊
select blocks,empty_blocks,num_rows from dba_tables where table_name='EMP';
高水位線降下來了。