使用PL/SQL删除百万条记录的大表:
最近开发人员对测试环境数据库进行了压力测试,数据库中产生了大量的脏数据。有几张大表里数据量均在百万甚至千万条的记录数。开发人员现提出需求如下:
只清理其中的部分脏数据,不允许对这些表使用truncate操作。于是就有了下面的PL/SQL清理脚本:
1.编写删除数据表数据的脚本内容如下:
$ cat data_del.sql 
set serveroutput on
show serveroutput
DECLARE 
V_LOGNUM NUMBER;
V_NEEDARC NUMBER;
BEGIN 
SELECT count(1) INTO V_LOGNUM FROM V$LOG; 
LOOP 
LOOP 
SELECT count(1) INTO V_NEEDARC FROM V$ARCHIVE; 
IF V_NEEDARC < V_LOGNUM - 1 THEN 
 EXIT; 
ELSE 
 DBMS_LOCK.SLEEP(60); 
END IF; 
END LOOP; 
 
DELETE FROM T_USER.T_TABLE_NAME WHERE mobile='13800138000' AND rownum < 100; 
IF SQL%ROWCOUNT = 0 THEN 
 EXIT; 
END IF; 
 COMMIT; 
END LOOP; 
END;
/
2.编写调用脚本:
$vim clear_dirt_data.sh
source ~/.bash_profile
sqlplus -s mytest/passwd@mydb <<EOF
@data_del.sql;
exit;
EOF
 
此脚本程序,通过利用dbms_output.sleep()过程,在删除过程中当需要归档的日志文件达到认定的限制时,使删除过程暂时停止,等待ARCH进程将日志文件归档后再继续进行,从而达到避免归档日志文件来不及归档,导致数据库挂起的问题。 此方法适用于oracle的各个版本。

本文转自vcdog 51CTO博客,原文链接:http://blog.51cto.com/255361/846956,如需转载请自行联系原作者

使用PL/SQL删除百万条记录的大表相关推荐

  1. mysql删除一条记录

    mysql如何删除一条记录delete from 表名 where 条件实例:use db1delete from tb1 where id = 1; 转载于:https://www.cnblogs. ...

  2. mysql获取删除的条数_如何从mysql表中删除数百万条记录而不会减速

    有没有一种很好的方法来删除很多记录而不会减慢网站的速度? 我需要从没有索引和主键的MySQL表中删除数百万条记录.我阅读了SO和网上的各种教程,基本策略是限制删除查询,在删除之间休眠一两秒钟,然后重复 ...

  3. mysql批量删除多条记录的sql语句_一次删除多条记录的sql语句

    在sql中要一次性删除多条记录我想到二种方法,一种是利用sql in一种是利用循环一条条删除,下面我们主要讲关于sql in 在sql中要一次性删除多条记录我想到二种方法,一种是利用sql in一种是 ...

  4. mysql修改最后一条记录删除第一条记录

    //修改最后一条记录 UPDATE userinfo set userid='55' WHERE 1 ORDER BY userid DESC LIMIT 1 //删除第一条记录 delete fro ...

  5. CSM管理系统_复选框删除多条记录

    复选框删除多条记录 将复选框中选中记录的id通过" , "进行拼接,例如id1+","+id2+","+id3+",". ...

  6. php怎么删除多条,php 用checkbox一次性删除多条记录的方法

    一个简单示例 现有一个学生信息数据库,需要一次性删除多条记录 创建一个名为del.php的文件 代码如下: $link=mysql_connect("localhost",&quo ...

  7. 相邻记录日期差 oracle,sql 相邻2条记录时间差比较

    软件安装:装机软件必备包 SQL是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言.在使用它时,只需要发出& ...

  8. python路径分隔符_Python:当读取一个没有默认分隔符的文件(包含数百万条记录)并将其放入dataframe (pa-问答-阿里云开发者社区-阿里云...

    Python:在没有默认分隔符(包含数百万条记录)的情况下读取文件并将其放入"数据框架(panda)"中,最有效的方法是什么? 文件是:"file_sd.txt" ...

  9. 微信小程序销毁某一注册函数_微信小程序云开发API 删除一条记录

    Document.remove 删除一条记录 函数签名如下:function remove(options: object): Promise 参数说明 options 为必填参数,是一个如下格式的对 ...

最新文章

  1. 一文详解脑科学研究与产业发展方向
  2. day18 正则表达式
  3. 实现工控机4U断电后自动重启功能
  4. shiro+jwt进行认证和授权的解决方案代码实例
  5. 达摩院 2020 预测:工业互联网超融合来袭!
  6. hashmap删除指定key_HashTable和HashMap的区别详解
  7. [python opencv 计算机视觉零基础到实战] 一 opencv的helloworld
  8. 【转载保存】cookie在登录时的使用
  9. python判断素数程序_Python程序检查素数
  10. thriftserver与spark application的区别
  11. 第五章节 类的继承(访问修饰符)
  12. 活动、节假日、促销等营销方式的因果效应评估——特征工程篇(一)
  13. UVa232.Crossword Answers
  14. windows下设置tomcat自动启动的注意事项
  15. 光谱共焦传感器在PCB板子上的应用
  16. 贾跃亭个人破产内幕曝光 差一点获得中东土豪投资
  17. python中difference_update_Python学习笔记-Python基础(二)
  18. [日推荐] 『紫砂壶平台』一把紫砂,一种品味
  19. 计算机管理 网络连接服务,电脑出现无法连接网络问题怎么解决
  20. 2021-03-03 地理配准

热门文章

  1. Android接收系统广播
  2. Linux 配置网络
  3. gjrand 4.0 发布,C语言的伪随机数生成器
  4. 从主流安全开发框架看软件供应链安全保障的落地
  5. 奇安信代码安全实验室帮助 RedHat 修复两个 oVirt 漏洞,获官方致谢
  6. DevSecOps 现状:云 IT 的复杂度制造了“无法改变的”安全问题
  7. 趣图:21 副 GIF 动图让你了解各种数学概念
  8. Apache2.4项目配置PHP/TP项目方法
  9. python之twisted模块安装
  10. QT 异步函数和同步函数交换问题