2. 假如tab1表中的沒有資料的話
drop table tab1;
create table tab1 as select * from tab2;
然後在建立索引
3. 用hint 提示減少操作時間
4. 採用不寫日誌及使用hint提示減少資料操作的時間。
建議方案是先修改表為不寫日誌:
sql> alter table table_name nologging;
插入資料:
插入完資料後,再修改表寫日誌:
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)
oracle中大資料量更新的測試
在試驗中嘗試了2種更新資料的方法 1.update table set where 2.先根據更新條件建立臨時表,再刪掉未更新之前的表,最後把臨時表更名為原始表名 通過試驗很明顯的可以認識到update的效率是非常之低的。通過在網上跟其他oracle使用者的討論,也都一致的認為,大資料量更新應該採用...
Oracle大資料量遷移
prompt 生成歷史表,使用nologging create table his test nologging as select from test prompt 檢驗新舊表的資料量是否一致 select count 1 from test select count 1 from his tes...
oracle千萬級資料量的表關聯更新
查詢資料庫中的鎖 select sess.sid,sess.serial lo.oracle username,lo.os user name,ao.object name,lo.locked mode from v locked object lo,dba objects ao,v session...