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

2016-02-19 10:30 2 1 收藏

今天图老师小编给大家精心推荐个Oracle中大批量删除数据的方法教程,一起来看看过程究竟如何进行吧!喜欢还请点个赞哦~

【 tulaoshi.com - 编程语言 】

写一个循环删除的过程。
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
方法虽好,但我应用在一个亿级数据库时还是觉得慢得不行。就算删一点点数据也觉得好象挺慢的。

来源:http://www.tulaoshi.com/n/20160219/1594866.html

延伸阅读
有时,希望除去某些记录或更改它们的内容。DELETE 和 UPDATE 语句令我们能做到这一点。 用update修改记录 UPDATE tbl_name SET 要更改的列 WHERE 要更新的记录 这里的 WHERE 子句是可选的,因此如果不指定的话,表中的每个记录都被更新。 例如,在pet表中,我们发现宠物Whistler的性别没有指定,因此我们可以这样...
有时,希望除去某些记录或更改它们的内容。DELETE 和 UPDATE 语句令我们能做到这一点。 用update修改记录 UPDATE tbl_name SET 要更改的列 WHERE 要更新的记录 这里的 WHERE 子句是可选的,因此如果不指定的话,表中的每个记录都被更新。 例如,在pet表中,我们发现宠物Whistler的性别没有指定,因此我们可以这...
标签: SQLServer
  方法一 declare @max integer,@id integer declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) 1 open cur_rows fetch cur_rows into @id,@max while @@fetch_status=0 begin select @max = @max -1 set rowcount @max delete from 表名 where 主字段 = @id fetch cur_rows into ...
标签: iphone 手机软件
现在,我们的手机不再是单纯的通信工具。随着手机功能越来越强大,它在我们生活中扮演的角色也越来越重要。现在,手机已经成为我们娱乐生活中不可缺少的工具,里面也存储着着众多的私人资料。一旦手机出现数据丢失,因为担心数据的安全,所以很多人不爱拿去外面修理。下面,小编就给大家介绍一种自己恢复手机数据的办法。 如果你的...
<%@ Import Namespace="System.Data" % <%@ Import Namespace="System.Data.SQL" % <html <script language="VB" runat="server" Dim MyConnection As SQLConnection Sub Page_Load(Src As Object, E As EventArgs) MyConnection = New SQLConnection("server=YOUR-SERVER;uid=joeuser;pwd=joeuser;database=pubs") If Not...

经验教程

55

收藏

57
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部