Oracle大数据量更新删除sql

短命女 2022-09-13 09:14 499阅读 0赞

Oracle大批量进行数据写入、删除会出现卡死的情况,这里给出一个例子,每秒操作10000,150w数据几分钟内写完。

  1. begin
  2. loop
  3. insert into upload_task select * from upload_taskbak t
  4. where t.create_tm >=
  5. to_date('2021/09/27 22:20:00', 'YYYY/MM/DD HH24:MI:SS')
  6. and t.create_tm <
  7. to_date('2021/09/27 23:20:00', 'YYYY/MM/DD HH24:MI:SS')
  8. and rownum<=10000;
  9. exit when sql%rowcount = 0;
  10. commit;
  11. delete from upload_taskbak u2 where exists (select 1 from upload_task u1
  12. where u1.orderno=u2.orderno) ;
  13. commit;
  14. end loop;
  15. end;

发表评论

表情:
评论列表 (有 0 条评论,499人围观)

还没有评论,来说两句吧...

相关阅读

    相关 数据删除的思考(二)

    在这个简短系列的第1部分中,我提供了两个场景的非正式描述,在这些场景中,我们可以从表中进行大规模删除。没有一个具体的例子,很难想象删除数据的性质和可用的访问路径会产生大数据量删

    相关 快速删除数据

    需求: 要清空表中数据,现有一个100w以上的表,开始使用delete from t\_name进行删除,发现太慢了,足足等了8分钟,如果数据更大,则无法想象。 可用如