需要删除表中的重复记录。表中仅包含其中的33列PK_NUM
是主键列。由于PK_NUM
包含独特的记录,我们需要考虑最小值/最大值。删除oracle表中的重复记录:大小为389 GB
- 总表中的记录:1766799022个
- 鲜明表中的记录:69237983个
- 重复表中的记录:1697561039个
柱细节:
- 4:日期数据类型
- 4:数字数据类型
- 1:Char数据类型
- 24:VARCHAR2数据类型
工作台尺寸:386 GB
DB细节:Oracle数据库11g EE :: 11.2.0.2.0 :: 64位生产
的样本数据:
- COL1,COL2,COL3
- 1,ABC,123
- 2,PQR,456
- 3,ABC,123个
预期数据应仅包含2记录:
- COL1,COL2,COL3
- 1 ,ABC,123
- 2,PQR,456
* 1可被取代d乘以3,反之亦然。
我在这里的计划是
- 拉不重复的记录,并将其存储在备份表(通过使用插入即进入选)
- 截断现有表和移动从后最多记录现有的。
由于数据量庞大,
- 想知道什么是提取不同 记录
- 上要花费多少才能完成任何估计优化的SQL(插入 选择)并截断现有的表。
请让我知道,如果有任何其他最好的办法来实现这一点。我的最终目标是删除重复项。
根据我的经验,插入将比删除快很多。所以你的方法听起来不错。当您将原始表格和备份放到旧名称并重新创建所有约束时,可以更快地完成。然后保存重新插入行的工作 –
需要多少个列来区分独特性? –
需要15列来比较清晰度 –