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

来源:asp之家 时间:2010-07-21 13:05:00 

写一个循环删除的过程。
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,数据
0
投稿

猜你喜欢

  • ASP正则表达式验证域名是否合法

    2010-01-02 20:44:00
  • IE下中英文字体不能对齐原因及解决

    2008-08-11 12:47:00
  • asp使用模板生成静态页面方法详解

    2007-09-24 12:29:00
  • 数字人组件反写[asp组件开发实例5]

    2009-06-09 13:23:00
  • SQL语句分组获取记录的第一条数据的方法

    2012-08-21 10:58:39
  • 一个拖动层和Onmouse自动下拉效果

    2007-10-08 21:25:00
  • 标准的、语义的、Unobtrusive的页签tab切换

    2007-11-03 13:58:00
  • phpMyAdmin 2.10.2 配置方法

    2007-08-22 08:11:00
  • br玩转清除浮动

    2007-05-11 16:52:00
  • CSS兼容IE6,IE7,FF的技巧

    2010-04-01 12:34:00
  • asp如何做一个自己的QQ?

    2010-07-14 19:11:00
  • 页面软键盘汉字输入

    2010-09-01 20:41:00
  • javascript修正12个浏览器兼容问题[译]

    2009-04-23 12:19:00
  • CSS写法性能

    2009-05-28 19:09:00
  • ASP 三层架构 Error处理类

    2011-03-16 11:06:00
  • ASP防盗链及防下载的方法

    2007-09-19 12:22:00
  • asp vbcrlf是什么意思

    2011-03-30 11:03:00
  • SQL Server 2000 作数据库服务器的优点

    2009-01-23 13:47:00
  • 内部系统是否也需要用户体验设计?

    2010-11-30 21:47:00
  • 概念性产品设计

    2008-06-11 12:57:00
  • asp之家 网络编程 m.aspxhome.com