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)