`
哇哈哈852
  • 浏览: 92632 次
文章分类
社区版块
存档分类
最新评论

Oracle比较快的删除重复数据的方式

阅读更多


v网上五花八门,Oracle删除重复数据的方法就是没见过这种:


DELETE FROM prod_grid_inc
WHERE  ROWID IN (SELECT b.row_id2
                  FROM  (SELECT ROWID row_id2,
                                a.*,
                                row_number() over(PARTITION BY a.prod_id ORDER BY a.insert_date DESC) row_num
                          FROM  prod_grid_inc a) b
                  WHERE  b.row_num >= 2);
大家不妨试试,经过试验,的确快了不少。

如果是几G的大表(这种时候一般是分区表),这种情况最好是append+nologging方式,将唯一记录insert到临时表中,然后通过交换分区的方式交换过去,前后只需要几分钟,其中临时表的表空间和索引表空间要符合正式表的要求:

eg:

INSERT /*+append*/ INTO ACCT_ITEM_MID
SELECT *
  FROM ACCT_ITEM SUBPARTITION(P_201109_SUB_P_XX) a
  WHERE ROWID = (SELECT MAX(ROWID)
                  FROM ACCT_ITEM SUBPARTITION(P_201109_SUB_P_XX) a1
                  WHERE a.cust_id = a1.cust_id);
COMMIT;
               
ALTER TABLE ACCT_ITEM EXCHANGE SUBPARTITION P_201109_SUB_P_XX WITH TABLE ACCT_ITEM_MID;
当然exchange的方式虽然快,但是这种情况会导致索引失效,需要重建索引:


alter index ind_name rebuild subpartition subpartition_name;
如此即可。
  • 大小: 32.9 KB
分享到:
评论

相关推荐

    oracle中如何删除重复数据

    在Oracle数据库中,删除重复数据是一项常见的数据清洗任务,尤其当表设计不当时,重复数据可能导致数据不一致和分析错误。以下将详细解释如何在Oracle中处理这两种类型的重复数据问题:部分字段重复和完全重复记录。...

    Oracle删除表中的重复数据

    ### Oracle删除表中的重复数据方法 在Oracle中删除表中的重复数据,可以采用多种策略,但通常涉及创建一个临时表来保存去重后的数据,然后用这个临时表覆盖原始表。这种方法可以避免直接修改原表带来的风险,确保...

    ORACLE去除重复数据方法

    ### ORACLE去除重复数据方法 在数据库管理与维护过程中,数据重复问题是非常常见的现象,尤其在大型企业级应用中更是如此。重复数据不仅占用存储空间,还可能导致数据分析结果出现偏差,影响业务决策的准确性。因此...

    ORACLE删除重复数据

    ORACLE 删除重复数据 在 ORACLE 数据库中,删除重复数据是一项常见的操作。重复数据的存在可能会导致数据不一致、查询效率下降等问题。今天,我们将介绍三种删除重复数据的方法,并对每种方法的执行时间进行比较。 ...

    oracle下如何删除重复数据的几种方法

    ### Oracle 下删除重复数据的方法及分析 #### 一、部分字段重复数据的处理 ##### 查询重复数据 在Oracle数据库中,经常会遇到表中存在部分字段重复的情况。为了找到这些重复的记录,我们可以使用以下SQL语句: `...

    如何高效删除Oracle数据库中的重复数据

    ### 如何高效删除Oracle数据库中的重复数据 在Oracle数据库管理中,经常会出现因各种原因导致的数据重复问题。这些重复数据不仅占用存储空间、降低查询效率,还可能导致数据分析时出现错误的结果。因此,学会如何...

    OracleSQL实例-删除重复数据行留最新日期实例.pdf

    在Oracle SQL中,删除重复数据并保留最新日期的实例是一个常见的数据清理任务,尤其是在具有历史记录或事务数据的数据库中。这个实例展示了如何通过SQL查询有效地处理这种情况。在这个例子中,我们有一个名为`abc`的...

    oracle数据库各种删除重复数据方法

    ### Oracle数据库删除重复数据的方法 在Oracle数据库管理中,处理重复数据是一项常见且重要的任务。重复数据不仅会占用额外的存储空间,还可能导致数据分析时出现偏差。因此,掌握如何有效地识别并删除这些重复记录...

    oracle删除重复数据的几种方法

    oracle 删除重复数据的几种方法 在 Oracle 中,删除重复的数据是一种常见的操作。delete 操作可以用来删除重复的数据,但是需要根据实际情况选择合适的方法。下面将介绍四种删除重复数据的方法,每种方法都有其优...

    oracle 查询重复数据

    在IT行业的数据库管理中,处理重复数据是一项常见且重要的任务,尤其在大型数据库如Oracle中。本文将深入探讨如何在Oracle数据库中查询重复数据,理解SQL语句背后的逻辑,并掌握其实现方法。 ### Oracle查询重复...

    oracle中如何删除重复的数据

    在Oracle数据库中,删除重复数据是一项常见的数据维护任务,尤其当表设计初期未充分考虑到数据唯一性时。本文将详细探讨两种情况下的重复数据删除方法:部分字段重复和完全重复记录。 1. 部分字段重复数据的删除 ...

    删除重复数据的一种高效的方法(oracle)

    在Oracle数据库管理中,删除重复数据是一个常见的需求,特别是在数据清洗和优化数据库性能时。本文将探讨三种不同的方法来高效地删除`demo`表中的重复数据,并分析它们的执行时间和适用场景。 方法一: 该方法基于...

    Oracle查询重复数据并删除,只保留一条记录.docx

    Oracle 查询重复数据并删除,只保留一条记录 Oracle 是一种关系型数据库管理系统,广泛应用于企业级数据库管理。然而,在实际应用中,数据重复问题经常会出现,例如在资源目录在线编目的资源项子表中存在多条重发...

    Oracle查询重复数据与删除重复记录方法(txt)

    ### Oracle查询重复数据与删除重复记录方法 在Oracle数据库中,有时我们需要找出并处理重复的数据。这不仅可以提高数据质量,还能提升查询效率。本文将详细介绍几种常用的查询和删除Oracle数据库中重复记录的方法。...

    oracle查询重复数据方法

    Oracle 查询重复数据方法是数据库管理中非常重要的一个问题, Oracle 数据库提供了多种方法来查询和删除重复数据。下面我们将详细介绍几种常见的方法。 方法一:使用 Having 子句 第一种方法是使用 Having 子句来...

    oracle删除重复记录性能分析

    ### Oracle删除重复记录性能分析 #### 一、背景与需求 在数据库管理中,经常会遇到数据清理的需求,尤其是在Oracle数据库中处理重复记录时。本文旨在通过对比几种不同的方法来删除Oracle中的重复记录,并分析其...

    oracle中如何删除重复的记录

    ### Oracle中如何删除重复的记录 在Oracle数据库中,数据的完整性是非常重要的。有时,由于各种原因(如数据导入错误、系统故障等),数据库表中可能会出现重复的记录,这不仅浪费存储空间,还可能导致查询结果不...

    oracle删除重复数据的sql语句

    根据给定文件中的标题、描述、标签以及部分内容,本文将详细介绍在Oracle数据库中删除重复数据的几种方法。这些方法利用了ROWID、GROUP BY、DISTINCT等关键字来实现数据去重的功能。 ### 1. 使用ROWID进行去重 ...

    Oracle重复数据清理

    Oracle数据库中的重复数据是指在表中存在完全相同的数据行,通常这在数据库设计和数据操作中是不被允许的,因为它可能导致数据的不一致性和数据冗余。在数据迁移过程中,重复数据的问题尤为突出,可能会影响数据的...

    oracle删除重复数据方法

    Oracle 数据库中删除重复数据的方法是一项常见的数据清洗任务,尤其在大数据量的环境中,确保数据的唯一性和准确性至关重要。以下是一些针对不同情况的 Oracle SQL 语句,用于查找和删除重复数据: 1. **根据单个...

Global site tag (gtag.js) - Google Analytics