码迷,mamicode.com
首页 > 数据库 > 详细

oracle批量插入優化方案

时间:2018-12-14 13:01:08      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:log   今天   sele   插入   pen   需要   tab   select   day   

今天聽DBA説如果從一個表批量查詢出一批數據之後批量插入另外一張表的優化方案:

1)不寫歸檔日誌;

2)採用獨佔

關於insert /*+ append */我們需要注意以下三點:

a、非歸檔模式下,只需append就能大量減少redo的產生;歸檔模式下,只有append+nologging才能大量減少redo。

b、insert /*+ append */時會對錶加鎖(排它鎖),會阻塞表上的除了select以外所有DML語句;

 1 --不寫日誌設置
 2 ALTER TABLE my_flosta_all_571 NOLOGGING;
 3 
 4 insert /*+APPEND */ into my_flosta_all_571(OID,P_DAY,CITY,BUILDINGID,BUILDINGNAME,HASINDOOR)
 5 select OID,to_date(‘20180103‘,‘yyyyMMdd‘) as P_DAY,CITY,BUILDINGID,BUILDINGNAME,HASINDOOR
 6 from my_flosta_all_571 where p_day=to_date(‘20171231‘,‘yyyyMMdd‘);
 7 commit;
 8 
 9 insert /*+APPEND */ into my_flosta_all_571(OID,P_DAY,CITY,BUILDINGID,BUILDINGNAME,HASINDOOR)
10 select OID,to_date(‘20180104‘,‘yyyyMMdd‘) as P_DAY,CITY,BUILDINGID,BUILDINGNAME,HASINDOOR
11 from my_flosta_all_571 where p_day=to_date(‘20171231‘,‘yyyyMMdd‘);
12 commit;

oracle批量插入優化方案

标签:log   今天   sele   插入   pen   需要   tab   select   day   

原文地址:https://www.cnblogs.com/kakaisgood/p/10118344.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!