CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Oracle >  开发

数据库的删除效率问题

楼主nudtcomputer(王璞)2005-06-11 16:06:14 在 Oracle / 开发 提问

我的数据库有50000条记录,里面有许多重复的,我用sqlplus删除,但是sqlplus总是死在那儿。请问如何才能有效的删除这些重复记录  
  我的sql语言是delete   from  
  test   a   where   rowid   >  
  (select   min(rowid)   from   test   b  
  where   a.a1   =   b.a1   and   a.a2   =   b.a2); 问题点数:20、回复次数:7Top

1 楼hsj20041004(光芒)回复于 2005-06-11 17:56:11 得分 0

用truncate  
   
  -------  
  truncate   table  
  test   a   where   rowid   >  
  (select   min(rowid)   from   test   b  
  where   a.a1   =   b.a1   and   a.a2   =   b.a2);Top

2 楼nudtcomputer(王璞)回复于 2005-06-11 19:46:41 得分 0

报错ORA-03291:   无效的截断选项   -   缺少   STORAGE   关键字Top

3 楼bersagliere005(智珠子)回复于 2005-06-11 19:54:24 得分 0

那岂不是全删了  
  不是楼主想要的啊Top

4 楼CodeMagic(ErrorDetector)回复于 2005-06-11 20:13:16 得分 5

delete   from   test   where   rowid   <>  
  (  
      select   min(rowid)   from   test   group   by   a1,a2  
  )Top

5 楼Yans(跟贴是一种友谊)回复于 2005-06-11 23:14:17 得分 0

truncate   是删除全部记录吧?Top

6 楼bersagliere005(智珠子)回复于 2005-06-12 12:31:20 得分 0

是Top

7 楼dinya2003(OK)回复于 2005-06-12 15:21:22 得分 15

truncate删除表中的全部记录,并且不能回滚的.  
   
  使用delete   .可以考虑写一个存储过程,删除.Top

相关问题

  • 数据库删除???
  • 如何删除数据库?
  • 如何删除数据库?
  • 如何删除数据库?
  • 数据库中删除列
  • 数据库的删除~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • 数据库记录删除
  • 数据库批量删除!!!!!!!
  • 无法删除数据库!
  • 打开数据库后如何删除数据库

关键词

  • 数据库
  • 删除
  • rowid
  • bwhere
  • truncate
  • sqlplus
  • 记录
  • delete
  • select min
  • where

得分解答快速导航

  • 帖主:nudtcomputer
  • CodeMagic
  • dinya2003

相关链接

  • Oracle类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo