ORACLE中,如何提高SQL的INSERT和DELETE的效率
各位大侠,
我有一个Oracle中SQL语句的效率问题,问题描述如下:
当前库:A 备份库:B
在A库上执行如下语句:
EXEC SQL insert into table1_bak select * from table1 where date <= :date;
EXEC SQL delete from table1 where date <= :date;
其中:table1是A库中的表,有5万条当日的流水记录;
table1_bak是B库的表,通过DB Link的同义词映射到A库上,保存着所有的流水记录,表大小为15G,估计有几千万条记录。
该语句的目的就是\把当天的流水记录备份到历史记录中,然后清表。
这样的两条语句执行下来需要大约20分钟,太慢了。
这种类似的操作很多,一个完整的批处理流程走下来需要2个小时。
哪位专家有优化的方法?可以优化上述的语句或优化表?