• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Oracle中大批量删除数据的方法
    写一个循环删除的过程。
    create or replace procedure delBigTab(p_TableName in varchar2,p_Condition in varchar2,p_Count in varchar2) 
    as
    pragma autonomous_transaction;
    n_delete number:=0;
    begin
     while 1=1 loop
    EXECUTE IMMEDIATE
    'delete from '||p_TableName||' where '||p_Condition||' and rownum = :10000'
    USING p_Count;
    if SQL%NOTFOUND then
    exit;
    else
    n_delete:=n_delete + SQL%ROWCOUNT;
    end if;
    commit;
    end loop;
    commit;
    DBMS_OUTPUT.PUT_LINE('Finished!');
    DBMS_OUTPUT.PUT_LINE('Totally '||to_char(n_delete)||' records deleted!');
    end delBigTab; 
    调用:
    SQL> set timing on
    SQL> exec delBigTab('HS_DLF_DOWNLOG_HISTORY','NUMDLFLOGGUID  11100000','10000');
    PL/SQL procedure successfully completed.
    Elapsed: 00:00:18.54
    方法虽好,但我应用在一个亿级数据库时还是觉得慢得不行。就算删一点点数据也觉得好象挺慢的。
    上一篇:Oracle收购TimesTen 提高数据库软件性能
    下一篇:一个oracle指令的好网站
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Oracle中大批量删除数据的方法 Oracle,中,大批量,删除,数据,