Shrink Table

    內容表格
    1. 1. 說明
    2. 2. 主要步驟
    3. 3. 參考連結

    版本為 16:16, 6 Oct 2024

    到這個版本。

    返回到 版本存檔.

    查閱目前版本

    Table 在大量刪除歷史紀錄後,原先使用的儲存空間並不會自動被釋出,而是要經過一個 Table 的重組程序,可用空間才會有所變更。

    說明

    要調整 HWM 有以下方式可以做,各有不同優缺點:

    1. export / import
      object id 與 data object id 會改變
    2. alter table <table.name> move;
      data object id,rowid 會改變
    3. alter index <index.name> rebuild online;
    4. shrink table

     

    主要步驟

     Shrink 指令:單一個 Table

    SQL> alter table <owner>.<table_name> enable row movement;
    SQL> alter table <owner>.<table_name> shrink space cascade;
    SQL> alter table <owner>.<table_name> disable row movement; 
    

    Shrink:多個 Tables

    set heading off
    set feedback off
    set pagesize 0
    set linesize 1000
    
    SELECT 'alter table ' || OWNER || '.' || TABLE_NAME || ' enable row movement;' || chr(10) || 'alter table ' || OWNER || '.' || TABLE_NAME || ' shrink space cascade;' || chr(10) || 'alter table ' || OWNER || '.' || TABLE_NAME || ' disable row movement;' || chr(10)
    FROM ALL_TABLES
    WHERE OWNER = 'WIN_FDC_STDB'
    AND (
    TABLE_NAME NOT LIKE '%DEF%'
    AND TABLE_NAME LIKE 'PROC%'
    )
    ORDER BY NUM_ROWS DESC, TABLE_NAME ASC;
    
    Powered by MindTouch Core