Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1445939
  • 博文数量: 239
  • 博客积分: 5909
  • 博客等级: 大校
  • 技术积分: 2715
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-24 20:19
文章分类

全部博文(239)

文章存档

2014年(4)

2013年(22)

2012年(140)

2011年(14)

2010年(59)

我的朋友

分类: Oracle

2012-11-19 22:46:25


点击(此处)折叠或打开

  1. (1) delete是DML操作,需要生undo成数据,在没有commit前可以回滚。truncate是DDL操作,不需要生成undo数据,也无法回滚。

  2. (2) delte操作并不降低水位线hwm,也就是无法释放被删除记录所占用的块空间,undo相反,降低hwm,释放被删除记录所占用的表空间。在对整个表和索引进行完全浏览时,经过TRUNCATE操作后的表比DELETE操作后的表要快得多。

  3. (3) detele的执行速度要远远低于truncate,就像要求你把一本书扔掉,detele操作是一页一页撕下来,而truncate则是把整本书直接扔到垃圾桶,造成它们速度差距的根本原因除了有无undo数据的生成之外,和它们在块上的实现操作有关,而如何有关,我也是尚不清楚。

  4. (4) TRUNCATE不能触发任何DELETE触发器

  5. (5) 不能授予任何人清空他人的表的权限

  6. (6) 不能清空父表
转自:  http://space.itpub.net/?uid-27425054-action-viewspace-itemid-749401
阅读(2044) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~