日期:2014-05-17  浏览次数:20953 次

Oracle分区表,经常删除会造成磁盘碎片过多吗?
如题,如果按周分区,数据保留2个月,一年下来,经常性的删除分区,是否会造成磁盘碎片过多呢,
如果会的话,应该这么设计,谢谢,我是Oracla新手!

------解决方案--------------------
建个临时表,专门保留2个月数据的,这个临时表可以按月分区。
------解决方案--------------------
分区表和磁盘碎片没什么关系的,分区表并不是指把表分成一个个不同的物理实体去存放成不同的文件

你可以把分区表存在不同的表空间,也可以存放在相同的表空间
目的,只是为了更好地改善查询性能,对分区表建立不同的分区索引,增强维护性,比如你的一个分区所在表空间挂掉,可以只修得当前挂掉的,其他的还是好的,可以减少IO冲突
------解决方案--------------------
Oracle删除分区的速度是很快的,其原因就是,

数据并没有真正的被删除,只是把分区头上指针与表的分区进行了分离。

所以,理论上,如果你想,删除的数据还是可以恢复的。

数据实实在在的存在,只是链接不存在了。

就像群龙无首,但群龙仍还是在的,这是站在Oracle数据库层面的分析结果。

至于对磁盘的影响,那个操作系统的层面,一段无用的数据,占据的空间,会在今后需要的时候,被利用。

至于被利用的方式,需要按照操作系统的算法去执行。

这个与Oracle无关。

就像胃切除了一半,仍然可以消耗食物。这个是本能,底层的自身调节方式。