Oracle 每五千条执行一次的sql语句

本文介绍了一种使用PL/SQL过程批量更新大型数据库表的方法,通过循环每次提交5000条记录来提高更新效率。

今天碰到一个问题,更新历史数据时,由于数据库表数据量太大,单行更新速度很慢,要求每五千条执行一次提交进行更新。执行SQL如下:

 

declare
  i_count int;
  i_large int;
begin
  i_count := 1;
  select ceil(count(1) / 5000)
    into i_large
    from tablename ch;
  while i_count <= i_large loop  
  
    update tablename a
       set a.aa   = i_count
       where a.aa is  null
       and rownum <= 5000;
     
    commit;
    i_count := i_count + 1;
  end loop;
end;

  这样写执行效率还可以。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值