删除重复数据的3种方法
今天google分析函数row_number()的时候发现的,觉得很好:
表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秒,适合大数据量的情况,产生更少回滚量;
学到了分析函数row_number(),对于object_id和rowid也有了一些认识。oracle要学的东西太多了,什么时候是个头啊。上面的方法不是很难理解,但也还没有完全理解,有机会实际试试。
posted @ 2008-01-08 10:04 羽翼渐丰 阅读(94) | 评论 (0) | 编辑 收藏
在load的时候去掉sequential file的header和footer
今天在论坛看到的方法,先记录下来:
方法一:
在sequential file stage中有个属性可以ignore第一行。对于footer,如果footer使用了与正文不同的格式,可以用使用transformer stage和 @INROWNUM stage来将footer去掉。
方法二:
在sequential file的filter option中使用sed -e '$d' -e '1d'来讲header和footer去掉。
方法三:
写个before job subroutine,可以先对这个文件做各种处理,不过我想也是subroutine中调用DSExecute sed -e '$d' -e '1d'。当然Basic中也有专门对sequential file处理的函数。
posted @ 2007-08-13 19:37 羽翼渐丰 阅读(163) | 评论 (0) | 编辑 收藏
分享到:
相关推荐
使用ORACLE去除重复数据,这在日常数据处理中非常有用。
oracle中删除重复的数据,你们都用什么方法呢,我觉得很不错的去重复数据的方法,给大家分享一下
Oracle查询重复数据与删除重复记录方法,Oracle查询重复数据与删除重复记录方法
ORACLE删除重复数据
ORACLE删除重复数据的一种高效的方法.
oracle 数据库中重复的记录行的清理删除方法,总结了几种比较可行的方法路径并分析了方法的优劣
oracle中如何删除重复数据,方便大家下载
oracle数据库各种删除重复数据方法
oracle删除重复数据方法。希望对大家有用。谢谢!
删除表中产生的重复数据,并且不会损害和修改原表数据.
查询及删除重复记录的SQL语句1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断select * from 表 where Id in (select Id from 表 group by Id having count(Id) > 1)2、删除表中多余的重复记录,...
OracleSQL实例-删除重复数据行留最新日期实例.pdf 学习资料 复习资料 教学资源
Oracle数据库删除重复记录的方法
oracle删除重复记录性能分析平时收集,希望能给需要帮助的人提供便利
Oracle查询重复数据并删除,只保留一条记录.docx
如何高效删除Oracle数据库中的重复数据.重复数据删除技术可以提供更大的备份容量,实现更长时间的数据保留,还能实现备份数据的持续验证
一、背景 一张person表,有id和name的两个字段,id是唯一的不允许重复,id相同则认为是重复的记录。 二、解决 ...Oracle删除重复数据的SQL(删除所有): 删除重复数据的基本结构写法: 想要删除这些
我们可能会出现这种情况,某个表原来设计不周全,导致表...一、对于部分字段重复数据的删除 先来谈谈如何查询重复的数据吧。 下面语句能够查询出那些数据是重复的: select 字段1,字段2,count(*) from 表名 group
几个删除重复记录的SQL语句 1.用rowid方法 2.用group by方法 3.用distinct方法 1。用rowid方法