天天看點

Oracle 插入大量資料

1. 采用高速的儲存設備,提高讀寫能力,如:EMC 和NetApp,

2. 假如tab1表中的沒有資料的話 

DROP   TABLE   TAB1;

CREATE   TABLE   TAB1   AS   SELECT   *   FROM   TAB2;

然後在建立索引

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

    INSERT      INTO     tab1 

                SELECT   *   FROM   tab2;

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

建議方案是先修改表為不寫日志: 

sql> alter   table   table_name   NOLOGGING;

插入資料:

INSERT      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/[email protected]   file=...   log=...   tables=(tab1) 

(3)把名字改回來 

alter   table   tab1   rename   to   tab2; 

alter   table   tab11   rename   to   tab1; 

(4)導入資料 

imp   user/[email protected]   file=...   log=...   fromuser=user   touser=user   tables=(tab1)