1. 程式人生 > >Oracle資料庫表調整表空間

Oracle資料庫表調整表空間

內容

  1. 調整表 table 所屬表空間
  2. 調整索引 index 所屬表空間

指令碼

// 生成table遷移語句
select 'alter table  '|| table_name ||'  move tablespace 新表空間名;'  from user_all_tables; 

// 生成index遷移語句
select 'alter index '|| index_name ||' rebuild tablespace 新表空間名;' from user_indexes; 

執行生成的遷移指令碼完成表空間修改。

大欄位索引遷移問題

含有CLOB、BLOB欄位的表索引在遷移過程會發生錯誤。

// 查詢含有打欄位的表、索引資訊
SELECT INDEX_NAME,TABLESPACE_NAME,TABLE_NAME FROM USER_INDEXES WHERE INDEX_TYPE='LOB';

// 調整大欄位儲存位置
ALTER TABLE 表名 MOVE LOB(欄位名) STORE AS (TABLESPACE 新表空間名);

參考

ORACLE修改表空間方法 - 茄子_2008 - 部落格園