在数据量比较大的时候,例如到达5000W条或更多,删除其中几千万条就会处理的非常慢,可能执行DELETE好几个小时都没处理完毕。可以采用脚本形式处理:

declare
    maxrows number default 1000;
    delete_cnt number default 0;
begin
    select count(1)/maxrows into delete_cnt from ITEMS  where  CREATED_TIME between TO_DATE('2023-12-17 00:00:01', 'yyyy-mm-dd hh24:mi:ss') and TO_DATE('2023-12-20 23:59:59', 'yyyy-mm-dd hh24:mi:ss');
    for i in 1..TRUNC(delete_cnt)+1
        loop
            delete ITEMS where CREATED_TIME between TO_DATE('2023-12-17 00:00:01', 'yyyy-mm-dd hh24:mi:ss') and TO_DATE('2023-12-20 23:59:59', 'yyyy-mm-dd hh24:mi:ss') and rownum <= maxrows;
            commit;
        end loop;
end;

执行后等待,可能时间也挺久,但是是一直在删除中,等待即可

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐