• oracle性能优化----处理大数据量数据


     场景:对2千万个数据,修改他们的名字加上后缀“生日”。
    普通sql:
     
    update calendar_info set title =concat(title, '生日') where specialtype = 1 and not regexp_like(title, '生日');

    优化sql:

    declare
    type rid_Array is table of rowid index by binary_integer;
    v_rid rid_Array;
    v_Count PLS_INTEGER := 0;
    v_Cur sys_refcursor;
    v_SQL varchar2(2000) := 'select t.rowid from calendar_info t where specialtype = 1 and title not like ''%生日''';
    begin
    open v_Cur for v_SQL;
    loop
    fetch v_Cur bulk collect
    into v_rid limit 1000;
    forall i in 1 .. v_rid.count()
    update calendar_info set title =title||'生日' where rowid = v_rid(i);
    v_Count := v_Count + sql%rowcount;
    commit;
    exit when v_Cur%notfound;
    end loop;
    commit;
    close v_Cur;
    dbms_output.put_line(v_Count);
    exception
    when others then
    rollback;
    end;

    http://blog.csdn.net/dba_waterbin/article/details/8581448

    当处理数据量非常大的时候,我们使用存储过程进行操作。

  • 相关阅读:
    作业
    作业4
    作业1
    作业
    补交课堂作业
    补交最后一题
    第三次作业
    作业
    C语言 homework(4)
    C语言 homework (3)
  • 原文地址:https://www.cnblogs.com/wanghongye/p/5054067.html
Copyright © 2020-2023  润新知