天天看點

清理曆史資料方法

概述:

根據公司業務需要,經常會有曆史資料遷移清理的工作,當表是分區表是,比較友善,但是如果不是分區表,經常使用delete操作,但是delete資料庫量大,會遇到很慢,有時會導緻資料庫出現問題,甚至可能出現鎖的問題,是以一般采用存儲過程批量送出删除的方法:如下為存儲過程内容

create or replace procedure pro_del is

v_i number := 0;

begin

for c in (select t.*, rowid nrowid

from RESULT t

where t.CREATE_TIME < to_date(‘201607’, ‘yyyymm’)) loop

delete from RESULT where rowid = c.nrowid;

v_i := v_i + 1;

if (v_i >= 1000) then

commit;

v_i := 0;

end if;

END LOOP;

end pro_del;