oracle 11g 大数据去重
数据如下:
原数据表(t_paper_lin)200万条数据
两种去重方案对比
方案一
1.建立中间表,生成辅助对象,删除原表,改表名
CREATE TABLE t_paper_lin5
AS
SELECT *
FROM t_paper_lin a
WHERE a.ROWID = (SELECT MIN (b.ROWID)
FROM t_paper_lin b
WHERE a.file_pdf = b.file_pdf);
2.根据原数据库表(t_paper_lin)的建立主键。
ALTER TABLE t_paper_lin5 ADD CONSTRAINT t_paper_lin5_pk PRIMARY KEY (id);
3.原数据库表(t_paper_lin)如果存在唯一键则执行(比如file_pdf字段为唯一键)
alter table t_paper_lin5 add constraint t_paper_lin5_un unique (file_pdf);
4.原数据库表(t_paper_lin)如果存在索引则执行(比如file_name字段为索引键)
create index t_paper_lin5_index on t_paper_lin5 (file_name);
5.最后一步,替换表。把t_paper_lin重新命名,之后把新生成的t_paper_lin5表命名为t_paper_lin。