ORACLE删除重复数据的一种高效的方法

转载 2012年03月21日 18:42:59
删除重复数据的一种高效的方法

表demo是重复拷贝自dba_objects,有88万左右,不重复的是27323,没有索引
方法一:delete   from   demo   a   where   a.rowid   <>   (select   max(rowid)   from   demo   b   where
                                                                                                                                            b.object_id=a.object_id);
                        耗时:几个小时以上


方法二:   delete   from   demo   where   rowid   in  
                            (select   rid   from  
                                                    (select   rowid   rid,row_number()   over(partition   by   object_id   order   by   rowid)   rn
                                                          from   demo)
                              where   rn   <>   1   );
      耗时:30秒

方法三:   create   table   demo2   as  
                            select   object_id,owner...   from
                                              (select   demo.*,row_number()   over(partition   by   object_id   order   by   rowid)   rn   from   demo)
                                                  where   rn   =   1;
                            truncate   table   demo;   insert   into   demo   select   *   from   demo2;   drop   table   demo2;

共耗时:   10秒,适合大数据量的情况,产生更少回滚量;

来源:http://blog.csdn.net/xjzdr/article/details/2047530


高效删除Oracle数据库中重复数据,并保留最新一条的方法

在对数据库进行操作过程中我们可能会遇到这种情况,表中的数据可能重复出现,使我们对数据库的操作过程中带来很多的不便,那么怎么删除这些重复没有用的数据呢?   重复数据删除技术可以提供更大的备份容量,实现...
  • Flood_Dragon
  • Flood_Dragon
  • 2013年06月06日 12:56
  • 1404

Oracle删除重复记录只保留一条数据的几种方法

Oracle删除重复记录只保留一条数据的几种方法 1. 问题描述 BBSCOMMENT表为BBSDETAIL的从表,记录商户评价信息。因为数据倒腾来倒腾去的,有很多重复数据。表结构如下: C...
  • haiross
  • haiross
  • 2014年08月12日 11:53
  • 21959

Oracle 去重复的数据

重复的数据分两种,一种是表中部分字段的重复,一种是两行以上的记录完全一样。 部分字段的重复: 查询不重复的数据SQL: select 字段1,字段2,count(...
  • rlhua
  • rlhua
  • 2014年06月18日 14:45
  • 7577

ORACLE查询删除重复记录三种方法

比如现在有一人员表 (表名:peosons) 若想将姓名、身份证号、住址这三个字段完全相同的记录查询出来  复制代码代码如下: select p1.*    from pe...
  • qiu_x_b
  • qiu_x_b
  • 2016年11月04日 15:34
  • 3070

oracle去重复数据的处理方法

1。DISTINCT 方法就不必说了,大家都清楚。(主要是我用不上,用了下面的方法) 2。通过查询方法来取得不重复数据 -- 根据去重复的字段来查询数据的第一个ID进行匹配 select...
  • ss19871028
  • ss19871028
  • 2014年03月06日 17:43
  • 1295

oracle 删除表中重复记录

oracle 删除表中重复记录
  • qq_34117825
  • qq_34117825
  • 2016年06月30日 14:11
  • 857

oracle笔记整理5——delete与truncate,rowid与rownum,删除重复记录

1) delete与truncate a) delete一行一行删除,并且记录日志,truncate释放用于存储表数据的数据页(extent)来删除数据,在日志中只记录页的释放,故无法rollbac...
  • thinkpadshi
  • thinkpadshi
  • 2016年01月02日 14:45
  • 890

Oracle中怎样查询、删除一张表中的重复数据

一、怎样查询重复数据 1.  查询一个表中所有字段都相同的记录     比如现在有一人员表   (表名:peosons)       若想将姓名、编号、住址这三个字段完全相同的记录查询出来:...
  • u012456926
  • u012456926
  • 2014年09月18日 13:12
  • 1746

Oracle中快速导入导出数据库的几种方式

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本人声明。否则将追究法律责任。 作者:永恒の_☆ 地址:http://blog.csdn.net/chenghui0317...
  • mzd8341
  • mzd8341
  • 2017年08月02日 20:00
  • 1602

Oracle数据库中重复数据删除方法:部分去重+完全去重

Oracle数据库中重复数据怎么去除?使用数据表的时候经常会出现重复的数据,那么要怎么删除呢?下面绿茶小编为大家分享下解决Oracle数据库重复数据的问题。     Oracle数据库重复...
  • e_wsq
  • e_wsq
  • 2014年11月11日 12:29
  • 1670
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ORACLE删除重复数据的一种高效的方法
举报原因:
原因补充:

(最多只允许输入30个字)