Oracle删除数据减少IO的方法

今天有个表有很多数据需要删除,DBA很忙,我就自己动手了

delete from crm_customer t where t.corporation_id in (xxx,xxx,xxx,xxx.......xxx);


运行后发现数据库的CPU都消耗在了IOWait上面,我还以为是别人也在用这台机器作压力测试呢,东打听西打听没发现问题,结果DBA一个电话打来,说删除数据要这么做:

begin
for i in 90000018 .. 90000151 loop
 delete from crm_customer t where t.corporation_id = i;
 commit; 
end loop;
end;


而我那样做要回滚的数据太多,IO要求很高。

哈哈,又学了一手

你可能感兴趣的:(oracle,sql,Access)