ORACLE 大資料量更新表不寫日誌

2021-05-23 12:25:55 字數 880 閱讀 9374

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...