各位.前天求教了一条关于如何删除重复数据的SQL,在Oracle 9i里.
可参见: http://topic.csdn.net/u/20071030/10/6ddba217-dfad-44c7-97ee-7959f8bd34fd.html根据大家的提议,采用rowid是可以解决,但是该表有大量数据(几十万条).采用rowid很慢,而且还导致数据库服务器CPU 100%,
所以想请教除了采用rowid,还有其他可行的办法吗?多谢!
可参见: http://topic.csdn.net/u/20071030/10/6ddba217-dfad-44c7-97ee-7959f8bd34fd.html根据大家的提议,采用rowid是可以解决,但是该表有大量数据(几十万条).采用rowid很慢,而且还导致数据库服务器CPU 100%,
所以想请教除了采用rowid,还有其他可行的办法吗?多谢!
解决方案 »
- 被360害惨了!360的木马工具把oracle.exe的自动启动给关闭了。怎么设置开机自动启动啊?
- 单行子查询返回多个结果
- 超难的sql查询问题,跪求高手指教
- orcale10g 数据库启动后报错不能正常连接
- 关于一个比较复杂的行列互换的问题!oracle的PL/SQL
- powerdesigner 连接ORACLE数据库出现couldnt initialzed the javaVM
- 超级怪异的问题,真正高手请进,ORA-00600 问题
- 谁有oracle11i的下载路径,必有重谢
- 哪里错了啊,为什么提示文字与格式字符串不匹配
- 查询换表怎么写sql语句
- 关于dbms_xdb创建XML文件的问题
- 50分求一个简单的SQL语句
可以不?
这个方法我是试过,但是只要是含有rowid的Delete 语句,就会非常慢.Select语句包含rowid没有影响.thanks
大家讨论下哈
视图恐怕是不行的.除非定义了物化视图.复杂了些,
就用基于session的零时表. 其它的同sanmmu所说的.
也只能试验试验一下.没有干过在那么大的表格上删除重复数据.
如效率无显著的改进,不如用原来那贴的最后一个答复.
我测试过在100多万的记录的表中(表大约占用了370M磁盘空间),重复记录在100来条,执行
delete from t a
where a.rowid not in (select max(rowid)
from t b group by id);
只需要45秒。