也可以用一條語句來壓縮表的索引: alter table bookings shrink space cascade; 聯機 shrink 命令是一個用于回收浪費的空間和重置 HWM 的強大的特性。我把后者(重置 HWM)看作該命令最有用的結果,因為它改進了全表掃描的性能。
找到收縮合適選擇 在執行聯機收縮前,用戶可能想通過確定能夠進行最完全壓縮的段,以找出最大的回報。只需簡單地使用 dbms_space 包中的內置函數 verify_shrink_candidate。假如段可以收縮到 1,300,000 字節,則可以使用下面的 PL/SQL 代碼進行測試: begin if (dbms_space.verify_shrink_candidate ('ARUP','BOOKINGS','TABLE',1300000) then :x := 'T'; else :x := 'F'; end if; end; / PL/SQL 過程成功完成。
SQL> PRint x
X -------------------------------- T 假如目標收縮使用了一個較小的數,如 3,000: begin if (dbms_space.verify_shrink_candidate ('ARUP','BOOKINGS','TABLE',30000) then :x := 'T'; else :x := 'F'; end if; end;