1. delete/truncate 只删除数据不删除表,索引的结构。 drop 将删除表的结构及依赖的 index/constrain/trigger,依赖于该表的 procedure/function 将保留,但是变为 invalid 状态;

2. delete 是 dml,写 rollback segement,可回滚,速度慢,事务提交之后才生效。在 9i 满足 undo_retention 条件下可使用 flashback。一次性大批量数据的 delete 可能导致回滚段急剧扩展从而影响到数据库,慎用,触发 trigger。 truncate/drop 是 ddl,隐式提交,不写 rollback segment,不能回滚,速度快。9i 不能使用 flashback,不触发 trigger;

3. delete 不影响表所占用的 extent,HWM 保持原位置不动,即使删除的是最靠近 HWM 的数据。delete 其实也可以释放空间,但是不降低 HWM,delete 后 block 的空闲空间达到 pct_used,就可以重用。 truncate 缺省情况下将空间(表和索引)释放到 minextents 个 extent,除非使用 reuse storage。truncate 会将高水线复位(回到最开始)。 drop 将表所占用的空间全部释放,segment 不存在,无所谓 HWM 的概念;

Oracle 高水位(HWM)

http://blog.csdn.net/tianlesoftware/archive/2009/10/22/4707900.aspx

4. truncate/drop 的对象必须是本模式下的,或者被授予 drop any table 的权限,但 drop any table 权限不能 truncate/drop sys 的表。 delete 的对象必须是本模式下的,或者被授予 delete on SCHEMA.table 或 delete any table 的权限,但 delete any table 权限不能 delete sys 的表;

5. 不能 truncate 一个带有 enable 外键的表,不管表里有没有数据,如果要 truncate,首先要 disable 外键或者删除外键(drop 外键的表肯定是删除了外键)。不能 drop 一个带有 enable 外键的表,不管表里有没有数据,如果要 drop,首先要删除外键,或者直接用 drop table TABLE_NAME cascade constraints; 级联删除外键。 delete 可以。

转载自网络

------------------------------------------------------------------------------

Blog: http://blog.csdn.net/tianlesoftware

网上资源: http://tianlesoftware.download.csdn.net

相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx

DBA1 群:62697716(满); DBA2 群:62697977

转载于:https://www.cnblogs.com/zlja/archive/2010/06/19/2449862.html

Oracle delete truncate drop 的区别相关推荐

  1. Oracle中TRUNCATE、DELETE和DROP的区别?

    Oracle中TRUNCATE.DELETE和DROP的区别? 区别: 1.删除表时表数据方面 delete是每次从表中删除一行,同时将删除操作作为事务写进日志以便回滚操作,在有该操作的触发器时,执行 ...

  2. truncate delete 与 drop的区别

    一张表几亿条数据.根据task_id删除几千万. delete删除后查询,发现查询速度还是没有变快.explain查看 rows并没有发生变化.查询速度肯定也不会变化.原因? truncate del ...

  3. mysql中delete和drop的区别,SQL中DELETE和DROP的简单比较

    在SQL命令中DELETE和DROP都是可以用于删除数据库的元素,那么它们之间有什么区别?下面本篇文章就给大家简单比较一下DELETE和DROP,介绍DELETE和DROP的区别,希望对大家有所帮助. ...

  4. 关于数据库中的delete,truncate,drop

    关于数据库中的delete,truncate,drop Delete Delete :删除数据表中的行(可以删除某一行,也可以在不删除数据表的情况下删除所有行). 删除某一行:Delete from ...

  5. oracle purge作业,Oracle Purge和drop的区别

    最近发现oracle中出现了这些奇怪的表名,上网查找后发现是oracle10g的回收站功能,并没有彻底的删除表,而是把表放入回收站,最后就出现了这样一堆奇怪的表名...... 清除的方法如下: pur ...

  6. mysql中delete,truncate,drop区别

    drop和delete只是删除表的数据(定义),drop语句将删除表的结构.被依赖的约束(constrain).触发器 (trigger).索引(index);依赖于该表的存储过程/函数将保留,但是变 ...

  7. 利用Log Explorer将你已经delete,truncate,drop过的数据进行恢复

    了解数据库的人都知道,数据库的日志记录了我们所有对数据库的操作动作,正是有了日志才使得事务的回滚成为可能.也就是说日志可以让所有的动作可逆,尽管我们知道这个原理,但是很少有人去分析sqlserver的 ...

  8. SQL中delete和drop的区别

    1.drop drop除了把表的全部数据删除以外.还把表的结构都删除了.删除的结构包括表的视图,索引,存储过程,函数等 2.delete delete是根据你所写的where条件删除掉表中的部分数据. ...

  9. Oracle Purge和drop的区别

    https://www.cnblogs.com/HondaHsu/archive/2012/09/28/2707487.html

最新文章

  1. [转]ISTQB FL初级认证考试资料(中文)
  2. 「Excel技巧」Excel技巧之如何看文件里的宏?
  3. 什么是错误的幻数错误?
  4. Hive 基础-进阶
  5. python返回列表中出现次数最多的数
  6. 利用VC检测程序内存溢出(转)
  7. mysql memory inno_如何定位RDS MySQL内存使用率高?-阿里云开发者社区
  8. 从当前文件夹以及子文件夹中,批量移动指定名字的文件
  9. Layer/jquery获取父窗口的元素
  10. 利用格林函数解泊松方程
  11. 二本天坑,一战成硕,上岸北邮
  12. Windows 7 64位 旗舰版 激活 心得 提示:系统保留分区设置驱动器号
  13. EXCEL中的定位条件(含快速删除空行,定位图片、文本框等对象)
  14. Unable to start debugging.报错
  15. 教职工员工管理MySQL实训_数据库课程设计---教职工管理系统
  16. 07SpringCloud-Elasticsearch
  17. Python pandas.DataFrame.expanding函数方法的使用
  18. 淘宝小二解读新《广告法》之滥发信息
  19. 华为/思科已知一个ip查对应mac和交换机接口
  20. Spring框架学习笔记(三)(AOP,事务管理)

热门文章

  1. 修复 SyntaxHighlighter 3.0.83 Java 代码多行注释 Bug
  2. C++2 dimension vector
  3. 关于流水线中剪裁的疑问
  4. 计算机类期刊的影响因子
  5. 协程实现爬虫的例子主要优势在于充分利用IO时间去请求其他的url
  6. Postman接口测试神器从安装到精通
  7. web报告工具FineReport在使用方法和解决方案常见错误遇到(一)
  8. 前端开发跨浏览器计算页面大小、滚动高度
  9. sql已经完成,生成表
  10. HDFS【2.5.1】系列1:HDFS的核心数据结构---元数据