使用的oracle10g數據庫
請看下面的sql語句,從早上11點執行到晚上9點還沒執行完
update chenqi_res_tp t set t.PTPID=(select t2.uuid from res_tp t2 where t.PARAM=t2.REMARK);
commit;
然后我們看看insert
insert into res_tp_end(UUID,TPNAME,USERLABEL,PTPID,MEID,EQUIPMENTID,PROFESSIONALTYPE,EDGEPOINT)
select SE_RES_TP_END.nextval,t2.tpname,t2.userlabel,t2.uuid,t2.meid,t2.equipmentid,t2.professionaltype,t1.uuid
from chenqi_res_tp t1, res_tp t2 where t1.param=t2.remark;
commit;
5-7分鐘就執行完了
數據量大概是100w條
由此我們可以在大數據量操作時將復雜sql語句轉化為簡單sql語句分次執行,執行完就commit,效率快很多,同時少用update,特別是多表關聯的update,將需要update的數據插入另外的表然后再插回來效率高很多倍。