(双击图片,清晰些)
(学习笔记)
如果是向表中添加行,不需要进程压缩或者传统的重建,但是删除或者更新表及索引,会让快中的行数变少,但是DML并不会让HWM 下降,然而谁也不能保证剩余的空间会被重新使用,所以这个时候需要重建以及10G 的压缩来整理,让FULL SCAN 扫描更少的块,提高性能.
图中说明了过程下面一个图是压缩前 上面一张是压缩后的。
和传统的移动和重建相比压缩的好处在于压缩段是在原位置上进行不需要太多的额外空间。
但是注意压缩会改变ROWID。ROWID 唯一标示快中的行,行的位置发生了变化ROWID当然也发生的变化。
进行压缩命令:
1、开启段上的行移动
ALTER TABLE ** ENABLE ROW MOVEMENT;
2、进行压缩
ALTER TABLE ** SHRINK SPACE;
如果系统正忙可以先不移动HMW
ALTER TABLE ** SHRINK SPACE COMPACT;
系统空闲下来在使用
ALTER TABLE ** SHRINK SPACE;
移动HMW
注意:1、用户DML锁可能会阻断压缩。2、移动HWM 会短暂锁住全表。
另外可以使用CASCADE进行压缩会对相关对象进行压缩。
(图自己画的,汗)