首页 > 其他 > 详细

delete和truncate

时间:2014-06-06 07:32:21      阅读:518      评论:0      收藏:0      [点我收藏+]

delete table a

truncate table b

用truncate删除表比delete删除表   逻辑读和cost都有明显的减少

delete 删除并不能释放空间,虽然将很多块的记录删除,但空间依然会保留,oracle在查询时,依然会查询这些块

而truncate是一种释放高水平位的动作,这些空快被回收,空间也就释放掉了。

例子

我们要统计某个大楼的人数,从第1楼道20楼,每个房间都打开检查一下,发现实际情况是一个人都没有。

但问题是打不开房间我们怎么知道没有人呢。这就是delete后空块的情况。

truncate是我们想统计大楼的人数,结果发现该大楼被铲平了,啥房间也没有,很快得到了没有人的结论。

truncate 是ddl操作  而非dml

truncate 后面是不带条件的  

如 truncate table a where ...是不行的。

但是如果在表中这些where条件能形成有效地分区,oracle支持在分区表中做truncate分区的。

命令 alter table t truncate partition ‘分区名‘;

这是分区表最实用的功能的功能,高效清理数据,释放空间

 

delete和truncate,布布扣,bubuko.com

delete和truncate

原文:http://www.cnblogs.com/zhugehome/p/3767632.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!