码迷,mamicode.com
首页 > 其他好文 > 详细

delete和truncate

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

标签:c   a   数据   art   os   问题   

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

标签:c   a   数据   art   os   问题   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!