假如你想把Oracle中的大量數據(80MB以上)轉移Oracle海量數據到另外的相關用戶或者是另外的相關表空間裡。我建議你可以使用以下的快速轉移數據的實際操作方法。望大家浏覽完之後會有所收獲。
一、建新表的方式
- create table target_tablename tablespace
- target_tablespace_name nologging
- pctfree 10 pctused 60
- storage(initial 5M next 5M minextents 1
- maxextents unlimited pctincrease 0)
- as select * from username.source_tablename where
條件;
注意事項: 新建的表沒有原來表的索引和默認值, 只有非空(not null)的約束素條件可以繼承過來,其它的約束條件或索引需要重新建立.
二、直接插入的方法
- INSERT /*+ APPEND */ INTO target_tablename
- SELECT * FROM username.source_tablename where 條件;
- COMMIT;
注意事項:
用INSERT /*+ APPEND */ 的方法會對target_tablename產生級別為6的獨占鎖,如果運行此命令時還有對target_tablename的DML操作會排隊在它後面,對OLTP系統在用的表操作是不合適的。
說明:這兩種方法轉移Oracle海量數據數據時沒有用SGA裡數據緩沖區和事物處理的回滾段, 也不寫聯機事物日志,就象數據庫裝載工具Solload一樣直接把數據寫到物理文件,速度是很快的。在Oracle8i以後的版本都可以使用。