oracle设置水位线有什么作用,或者说有什么好处?请给解释一下,谢谢了。 高水位线的意思是oracle数据块历史使用空间的最高点,好处就是比如做全表扫描的话,有了高水位线,全表扫描只会扫描到水位线处,再向上就不会扫描了,因为根本没有数据,所以对oracle查询性能是有一定的帮助的,另外如果一个表做过大量的delete操作的话,需要定时shrink,因为delete不回收高水位,下次做全表扫描的时候还会扫描到高水位线,但其实高水位以下很多都是free的空间,会影响全表扫描的性能,这也是如果你想删除表中所有数据时最好用truncate的原因,因为truncate回收高水位。
很精辟的oracle高水位线,终于知道DELETE和TRUNCATE为什么不一样了 建议把segment作为表的一个同义词)都有一个在段内容纳数据的上限,我们把这个上限称为\"high water mark\"或HWM。这个HWM是一个标记,用来说明已经有多少没有使用的数据块分配给这个segment。HWM通常增长的幅度为一次5个数据块,原则上HWM只会增大,不会缩小,即使将表中的数据全部删除,HWM还是为原值,由于这个特点,使HWM很象一个水库的历史最高水位,这也就是HWM的原始含义,当然不能说一个水库没水了,就说该水库的历史最高水位为0。
很精辟的oracle高水位线,终于知道DELETE和TRUNCATE为什么不一样 两个操作都是删除表数据的但是实际却又很大的不同delete只是单纯的删掉表里的数据,他可以添加删除条件,但是不会将空间回收,删除的时候有记录日志,方便恢复,但是速度比较慢truncate table是全表清空的操作,回收空间,无日志,基本上是不可恢复的