`

oracle 大数量删除

阅读更多

ORACLE采用的是不完全B+树,就是在删除时不进行再平衡。
就是说,大量修改和删除后,性能会下降,有时会错,必须经常修理索引。
目前采用完全b+树的数据库只有INFORMIX。
他们都担心删除时平衡会影响效率。实际上完全多虑了,INFORMIX按索引删除,比其他数据库快得多。

 

在经过大数据删除后,执行select pk from table where pk < 1亿之类的语句后,即使没有查询到任何数据,执行也是比较的慢, 原因就是没有再平衡, 或者如下解释:产生了索引碎块

 

尽管被删除的索引条目所占用的空间大部分情况下都能够被重用,但仍然存在一些情况可能导致索引空间被浪费,并造成索引数据块很多但是索引条目很少的后果,这时该索引可以认为出现碎片

索引键值持续增加(比如采用sequence生成序列号的键值),同时对索引键值按照顺序连续删除,这时可能导致索引碎片的发生。因为前面我们知道,某个索引块中删除了部分的索引条目,只有当有键值进入该索引块时才能将空间收回。而持续增加的索引键值永远只会向插入排在前面的索引块中,因此这种索引里的空间几乎不能收回,而只有其所含的索引条目全部删除时,该索引块才能被重新利用。  

 

    对于经常大数据删除的时候,最好进行分区,然后不要的数据做整个的truncate.  对于大数据的表超过200w ,不进行分区,本身就是个错误。

 

 

 

分享到:
评论

相关推荐

    oracle批量删除数据

    - 通过`EXECUTE IMMEDIATE`动态执行SQL删除语句,每次只删除指定数量的记录(`p_Count`)。 - 利用`ROWNUM`限制每次循环中删除的数据量。 - 通过`IF SQL%NOTFOUND THEN`判断是否还有满足条件的记录未被删除,如果...

    Oracle环境下根据条件大批量删除数据小程序

    综上所述,这个Oracle环境下的数据删除小程序是一个综合性的解决方案,旨在安全、高效地执行大规模数据清理。它结合了条件筛选、分批处理、事务控制、日志记录和用户交互等多个方面,为数据库管理员提供了一种可靠的...

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

    3. **日志管理**:预计删除操作会产生大量redo日志,可能需要提前调整日志文件大小和数量,以避免日志空间不足。 4. **索引**:删除操作可能会影响索引,如果可能,考虑先禁用相关索引,删除后再重建。 5. **约束和...

    Oracle经典教程 Oracle基本知识

    - **高性能与扩展性**:Oracle能够处理大规模的数据量,支持并发用户数量多,具备良好的扩展能力。 ##### 1.2 Oracle的发展历程 自1977年甲骨文公司成立以来,Oracle经历了多次重大版本更新,从最初的Oracle 1版到...

    oracle删除数据方法。

    ### Oracle删除数据方法详解 在Oracle数据库管理过程中,对于数据的增删改查操作是非常常见的需求之一。特别是在处理大量数据时,如何高效地执行删除操作成为了一项重要的技能。本文将详细介绍一种通过游标批量删除...

    定时删除oracle日志脚本

    2. **策略**:定义一个保留策略,比如按日期、数量或大小来决定哪些日志可以被删除。 3. **权限**:执行脚本的用户需要有足够权限访问并操作日志文件。 4. **自动化**:将脚本与操作系统级别的任务调度器(如Linux的...

    安装配置Oracle单机

    根据提供的文档信息,下面是关于“安装配置Oracle单机”的详细知识点总结。 ### 1. 安装前准备 #### 1.1.1 检查操作系统 在安装Oracle数据库之前,首先需要确保操作系统的兼容性和版本符合Oracle的要求。具体步骤...

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

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

    Oracle学习笔记 Oracle学习笔记

    - 使用`set linesize/pagesize number`设置每行显示字符数量和每页显示行数。 ### 用户管理 1. **用户创建与删除** - 创建用户:`create user username identified by password`。 - 删除用户:`drop user ...

    AIX下安装Oracle数据库与导入数据

    - 对于 AIX 7.1,可以通过 `iok -oaio_maxreqs` 命令查看系统支持的最大异步 I/O 请求数量,默认值通常为 **131072**。 #### 目录、用户环境变量 为了更好地管理 Oracle 数据库的安装和运行,需要创建相应的目录...

    lr_oracle计数器

    DDL(数据定义语言)语句,如CREATE、ALTER和DROP,用于创建、修改和删除数据库对象。监控这些语句的执行情况有助于识别数据库结构的变化和潜在性能影响。 通过理解和分析这些Oracle性能计数器,性能测试工程师可以...

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

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

    oracle大作业

    - 在Oracle中,可能需要使用`SELECT`查询数据,`UPDATE`更新数据,`DELETE`删除数据,以及`JOIN`操作连接不同表进行复杂查询。 7. **事务处理**: - 数据库操作通常涉及事务,比如一组相关操作(如一次完整的作业...

    oracle10g 安装操作实用手册

    实践2和实践3部分,文档介绍了Oracle数据库基本命令和数据库操作的知识,包括创建表、索引、视图、存储过程等数据库对象,以及进行数据查询、更新、插入和删除的基本操作。这些操作是构建和维护关系型数据库不可或缺...

    Oracle实现发送邮件

    - `L_PIECES`: 分片数量。 - `L_FILE_HANDLE`: 文件句柄类型。 - `L_AMT`: 保证正确格式的量。 - `L_FILEPOS`: 文件指针。 - `L_CHUNKS`: 块数。 - `L_BUF`: 缓冲区。 - `L_DATA`: 数据。 - `L_MAX_LINE_WIDTH`: ...

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

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

    创建oracle的后台服务OracleServiceORCL

    创建 Oracle 服务可以使用 Oradim 工具,Oradim 工具是 Oracle 数据库提供的一个命令行工具,用于创建、编辑和删除 Oracle 服务例程。创建服务的基本语法为: oradim -NEW -SID sid [-INTPWD 口令] [-MAXUSERS 数量...

    北大青鸟Oracle ppt2

    RAW和LONG RAW用于存储二进制数据,而LOB(大对象)数据类型如BLOB、CLOB和BFILE则用于存储大型非结构化数据。 Oracle中的ROWID是伪列,它是数据库中每个行的唯一地址,用于快速定位数据。ROWNUM也是伪列,它返回行...

    ORACLE 优化sql语句提高oracle执行效率 .doc

    如果你没有 COMMIT 事务,ORACLE 会将数据恢复到删除之前的状态(准确地说是恢复到执行删除命令之前的状况)。而当运用 TRUNCATE 时,回滚段不再存放任何可被恢复的信息。当命令运行后,数据不能被恢复。因此,很少...

    oracle视频教程 下载地址

    - 如何管理重做日志文件,包括大小、数量、自动扩展等。 - 如何处理重做日志文件满的情况。 ### 6. Oracle PL/SQL 复合类型 PL/SQL是一种用于Oracle数据库的过程语言,支持复合数据类型,如记录和数组。这部分可能...

Global site tag (gtag.js) - Google Analytics