5 个解决方案
#1
如果是从一张表拷贝到另一张表,那么用append加并行DML,不过这样在未COMMIT前会产生表级锁。例如:
begin
execute immediate 'alter session enable parallel dml';
insert /*+append parallel(4)*/ into a select * from b where ...;
end;
begin
execute immediate 'alter session enable parallel dml';
insert /*+append parallel(4)*/ into a select * from b where ...;
end;
#2
这个时候先去掉索引、主外键什么的如何?
#3
几十万还好,算是比较小的,如果表字段不是特别多的话
可以考虑 修改日志模式NOLOGGING、并行、执行路径加载
可以考虑 修改日志模式NOLOGGING、并行、执行路径加载
#4
可以考虑分批处理,百度下bulk into的用法
#5
#1
如果是从一张表拷贝到另一张表,那么用append加并行DML,不过这样在未COMMIT前会产生表级锁。例如:
begin
execute immediate 'alter session enable parallel dml';
insert /*+append parallel(4)*/ into a select * from b where ...;
end;
begin
execute immediate 'alter session enable parallel dml';
insert /*+append parallel(4)*/ into a select * from b where ...;
end;
#2
这个时候先去掉索引、主外键什么的如何?
#3
几十万还好,算是比较小的,如果表字段不是特别多的话
可以考虑 修改日志模式NOLOGGING、并行、执行路径加载
可以考虑 修改日志模式NOLOGGING、并行、执行路径加载
#4
可以考虑分批处理,百度下bulk into的用法