今天有个表有很多数据需要删除,DBA很忙,我就自己动手了
运行后发现数据库的CPU都消耗在了IOWait上面,我还以为是别人也在用这台机器作压力测试呢,东打听西打听没发现问题,结果DBA一个电话打来,说删除数据要这么做:
而我那样做要回滚的数据太多,IO要求很高。
哈哈,又学了一手
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要求很高。
哈哈,又学了一手