oracle大批量数据处理


alter session enable parallel dml ;
alter session disable parallel dml;

可以看到insert /*+ append */ into方式redo产生很少.


alter table redo_test nologging;
alter table redo_test logging;


Oracle10g中,我们可以设置commit的行为来做到在commit之后,控制权立刻返回给用户,而Oracle会在恰当的时候来唤醒LGWR,批量更新online redo log文件。


我们可以作系统级的更改:


ALTER SYSTEM SET COMMIT_WRITE = BATCH, NOWAIT

同样我们也可以在commit时单独使用,这样作虽然意味着即使commit了事务,在数据库恢复时也是不一定找得回来的。但从安全换效率的角度考虑,此做法也不失为权益之计。


COMMIT WRITE BATCH NOWAIT


/*+ append parallel(d,12) */ insert 表D开了12个进程

/*+ parallel(a,12) parallel(b,12) parallel(c,12) */ select 表a,b,c开了12个进程

[@more@]
请使用浏览器的分享功能分享到微信等