数据库的删除效率问题
我的数据库有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




