如果是小表,随便怎么折腾都行; 如果是大表(至少1千万条记录以上,或者占用10G以上空间), 我们可能需要想办法加快这个速度 , 这时可以参考下面方法:
要求:
删除t1表 object_name字段上的重复记录...不会锁表.
2.如果需要删除的重复记录比较多,比如几十万以上,可以用下面方法:
delete /*+ enable_parallel_dml parallel(8) */
from t1
where...这个方法对删除少量重复记录也是可用的....下面的方法3会把大事务拆分.
3.可以把大事务拆分, 比如拆分成10次:
把要删除记录的rowid保存到临时分区表, 然后逐个批次执行:
--创建临时表分区表保存待删除rowid及对应的批次:
--...,可以考虑创建新表+改名的方法:
create table t_nodup parallel 8
as
select * from --这个*要替换成字段列表,否则新表会多一个rn字段
(select