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
投稿

猜你喜欢

  • Vue 全部生命周期组件梳理整理

    2023-07-02 16:32:44
  • python strip() 函数和 split() 函数的详解及实例

    2021-07-03 09:34:56
  • ASP 禁用清除页面缓存

    2008-07-21 12:43:00
  • 详解Python中的List

    2023-11-20 05:37:39
  • Python将多个excel文件合并为一个文件

    2021-10-16 14:06:55
  • 解决selenium+Headless Chrome实现不弹出浏览器自动化登录的问题

    2022-01-14 12:27:24
  • Python中使用第三方库xlutils来追加写入Excel文件示例

    2022-05-23 10:04:11
  • Python的shutil模块中文件的复制操作函数详解

    2023-04-13 16:59:22
  • Opera下cloneNode的bug

    2007-11-23 11:40:00
  • MySQL忘记root密码错误号码1045的解决办法

    2024-01-20 17:00:43
  • 使用Pytorch构建第一个神经网络模型 附案例实战

    2023-10-13 14:40:30
  • 再谈CSS样式表书写风格

    2009-03-30 16:09:00
  • 在CMD命令行中运行python脚本的方法

    2023-08-03 18:54:38
  • Python OpenCV图像处理之图像滤波特效详解

    2021-06-07 04:36:02
  • Python 可视化神器Plotly详解

    2022-02-18 04:25:37
  • Python实现App自动签到领取积分功能

    2021-09-16 15:59:59
  • python切片作为占位符使用实例讲解

    2023-10-13 09:26:50
  • linecache模块加载和缓存文件内容详解

    2022-09-23 20:00:45
  • Discuz!NT 论坛整合ASP程序论坛教程

    2011-03-31 11:09:00
  • Oracle字符集修改查看方法

    2009-11-05 21:45:00
  • asp之家 网络编程 m.aspxhome.com