`
lirig
  • 浏览: 236770 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

oracle 中批量删除数据

阅读更多

因为数据中存在大量垃圾数据,但是不能全部删除,整个表一共有20亿多,要删除10多个亿的数据。如果一次删除肯定没有希望。又不能删除表,最后搞了半天脚本如下:

 

declare

 

begin

 

for i in 1..10000000 loop

 

delete /*+ index(a,idex_id )*/from table where id>1000000000 and rownum<100;

 

commit;

end loop;

 

end;

 

 

执行后去干其他事情就可以了

 

其实还有很多种方法,大家各抒己见吧

 

2
0
分享到:
评论
1 楼 stormhzy 2011-03-14  
   加HINT提示符强制CBO走索引是一个思路,那用在DELETE语句显得不太合适。
    既然整个表一共有20亿多,要删除10多个亿的数据,为何不采用CTAS的变通办法还实现数据删除呢?

    具体思路如下:
    1. 将原表rename
    ALTER TABLE table rename to table_tmp;

   2.CTAS

   CREATE TABLE table
   tablespace tablespace_name
   NOLOGGING
   parallel 4
   AS
   SELECT * FROM table_temp WHERE  id <= 1000000000;

   这样通过NOLOGGING、parallel并行的办法,大大减少了直接DELETE产生的REDO,提 升了速度。当然,还可以采用INSERT /*+APPEND*/,或直接路径导入等策略都可以。
  
   3.如果原来表有触发器和约束,则需要重建
   
   4.创建索引
  
   5.删除临时表   drop table table_emp purge;

这样通过将删除转化为插入的方式,提升了删除的性能。
  
  

相关推荐

    oracle批量删除数据

    ### Oracle批量删除数据知识点 #### 一、Oracle批量删除数据的优势...通过以上分析,我们可以看到Oracle批量删除数据不仅能够有效提升数据处理效率,而且在实现过程中还需要考虑多种因素来确保操作的安全性和稳定性。

    springboot项目在Oracle下测试批量添加和批量删除

    springboot项目在Oracle下测试批量添加和批量删除,使用spring boot构建的项目,数据库配置的时oracle,想换成MySQL自己把配置文件中的MySQL链接注释去掉即可。项目测试了Oracle下添加,删除数据,批量添加和批量删除...

    Oracle中多表关联批量插入批量更新与批量删除操作

    在Oracle数据库中,进行多表关联的批量插入、批量更新和批量删除操作是常见的数据库管理任务,尤其是在处理大量数据时,这些操作能显著提高效率并减少资源消耗。本文将详细探讨这三个方面,并通过实例代码来展示如何...

    oracle批量清空表数据sql脚本

    oracle批量清空表数据sql脚本

    Oracle中大批量删除数据的方法

    Oracle中大批量删除数据的方法 Oracle中大批量删除数据的方法是数据库管理员和开发者们经常面临的挑战之一。当数据库中的数据量非常大时,删除数据的操作可能会变得非常慢,甚至影响到整个数据库的性能。因此,...

    Oracle数据库批量数据无损迁移技术.pdf

    在批量数据同步中,首先要实现批量数据同步,可以借助触发器实现对 Oracle 数据库批量数据的变化的有效捕捉,使用日志表中的 sql 语句实现对变化信息的存储。然后,在设计数据库表时,要对其具体的规模进行控制,...

    oracle数组存储过程批量插入

    总结起来,Oracle的数组存储过程提供了批量处理数据的强大工具,可以用于插入、更新和删除等操作。通过定义PL/SQL类型和使用保存点,我们可以更好地管理事务和异常,同时在客户端正确设置参数类型以确保调用成功。在...

    D:\Oracle大批量删除数据方法

    `,这通常用于迭代集合并执行操作,但在本例中,测试表明FOR ALL并未带来性能提升,因此选择了直接的批量删除方法。FOR ALL在处理索引多列或复杂条件时可能会有优势,但具体情况需根据实际数据和环境评估。 在执行...

    数据批量删除/同时删除多条数据

    批量删除通常通过SQL语句来实现,例如在SQL Server、MySQL、Oracle等关系型数据库管理系统中。 1. SQL批量删除语句: - **DELETE语句**:基本形式为`DELETE FROM 表名 WHERE 条件`。当条件满足时,它会删除表中...

    Oracle批量保存

    在C#中使用ODAC进行Oracle批量保存,主要涉及以下几个步骤: 1. **创建OracleConnection对象**:首先,我们需要创建一个`OracleConnection`对象,通过提供有效的数据库连接字符串来初始化。 2. **开启事务**:为了...

    OraExcel excel连接oracle插件 批量插入

    它允许用户直接在Excel环境中执行对Oracle数据库的操作,如查询、更新、删除和插入数据,而无需编写复杂的SQL语句或借助其他数据库管理软件。这种直观的方式极大地提高了工作效率,特别是对于需要频繁进行数据导入...

    oracle批量删除

    在Oracle数据库中,当需要处理大量数据,如删除超过50万条记录时,直接使用单个删除语句可能会导致资源占用过多,甚至可能引发锁表问题,影响其他并发操作。为了解决这个问题,通常会采用批量处理的方式,分批进行...

    oracle、sql数据库批量建索引

    本文将深入探讨这两个数据库系统中如何批量创建和删除索引,以及它们对系统运行效率的影响。 首先,让我们了解索引的基本概念。索引是数据库为了快速定位数据而创建的一种数据结构,类似于书籍的目录。它减少了...

    oracle删除数据方法。

    3. **批量删除数据**: ```sql FORALL I IN 1..V_ROWID_ARRAY.COUNT DELETE FROM A WHERE ROWID = V_ROWID_ARRAY(I); COMMIT; EXIT WHEN CUR_ROWID%NOTFOUND; END LOOP; ``` - 使用 `FORALL` 循环,一次性...

    Oracle_数据库中的海量数据处理

    ### Oracle数据库中的海量数据处理 #### 数据仓库系统的特点与Oracle数据仓库简介 数据仓库系统是一种专门设计用于存储、管理和分析企业历史数据的信息管理系统。它的特点包括面向主题、集成性、随时间变化以及非...

    基于Oracle的大数据量删除操作性能分析.pdf

    本文主要讨论基于Oracle的大数据量删除操作性能分析,旨在解决大数据量删除操作中的性能问题。文章通过分析和比较,证明了在Oracle数据库中,使用rowid删除具有最优的效率。 文章首先提出了问题,即在大数据量删除...

    oracle批量添加主键

    总之,在Oracle数据库中批量添加主键是一个涉及多个步骤的过程,包括查找无主键的表、编写和执行`ALTER TABLE`语句以及处理可能存在的重复数据。这个过程需要谨慎操作,确保数据的完整性和一致性。同时,合理规划和...

    Oracle大数据量导入(CSV导入)

    SQL*Loader是Oracle提供的一种强大工具,专门用于将数据从外部文件批量加载到数据库表中。对于CSV文件,SQL*Loader通过控制文件定义数据格式,可以高效地完成导入工作。控制文件包含了字段映射、数据转换规则等配置...

    java操作Oracle批量入库

    以上就是Java操作Oracle批量入库的基本步骤和注意事项。在实践中,还需要根据具体的应用场景和需求进行调整和优化。如果你想要查看更详细的代码示例和实践技巧,可以参考给出的博文链接:...

Global site tag (gtag.js) - Google Analytics