oracle 大資料量資料插入

renjixinchina發表於2012-08-03

1. 採用高速的儲存裝置,提高讀寫能力,如:EMC 和NetApp,

 

2. 假如tab1表中的沒有資料的話 
DROP   TABLE   TAB1;
CREATE   TABLE   TAB1   AS   SELECT   *   FROM   TAB2;
然後在建立索引

 

3. 用Hint 提示減少操作時間

    INSERT   /*+Append*/   INTO     tab1 
                SELECT   *   FROM   tab2;

 

4. 採用不寫日誌及使用Hint提示減少資料操作的時間。

建議方案是先修改表為不寫日誌: 
sql> alter   table   table_name   NOLOGGING;

插入資料:

INSERT   /*+Append*/   INTO     tab1 
      SELECT   *   FROM   tab2;

插入完資料後,再修改表寫日誌: 
sql> alter   table   table_name   LOGGING;

這裡的區別就在於如果插入資料的同時又寫日誌,尤其是大資料量的insert操作,需要耗費較長的時間。

 

5. 用EXP/IMP 處理大量資料

(1)給當前的兩個表分別改名 
alter   table   tab1   rename   to   tab11; 
alter   table   tab2   rename   to   tab1; 
(2)匯出改名前的tab2 
exp   user/pwd@...   file=...   log=...   tables=(tab1) 
(3)把名字改回來 
alter   table   tab1   rename   to   tab2; 
alter   table   tab11   rename   to   tab1; 
(4)匯入資料 
imp   user/pwd@...   file=...   log=...   fromuser=user   touser=user   tables=(tab1)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15747463/viewspace-739708/,如需轉載,請註明出處,否則將追究法律責任。

相關文章