首页 > 数据库技术 > 详细

oracle批量插入優化方案

时间:2018-12-14 11:24:44      阅读:109      评论:0      收藏:0      [点我收藏+]

今天聽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批量插入優化方案

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!