关于segment的high water mark

高水位是表段的一个属性,是存储过数据的数据块的下一个数据块块号,当向表添加数据时,只能加进高水位前面的数据块,当高水位前面没有足够的数据块容纳新加入的数据时,Oracle会向后移动高水位,前5次,每次向后移动1个数据块,5次之后,每次向后移动5个数据块,很明显,高水位之前也可能会存在空的数据块。

high water mark对应的数据块,可能属于另外一个segment。


高水位也是全表扫描时,Oracle要读取的数据块的上限。

可以通过导出段被分配的第一个数据块,得到其当前的high water mark值,也可以通过对表进行分析后,查询dba_tables的blocks列值,然后加1得到。

对表删除数据后,虽然可能会产生很多空数据块,但高水位并不会降低,从而严重影响全表扫描的效率,可以通过命令:

alter table xxx move

降低其高水位。

可以参考关于高水位的实验dba_tables及dba_segment中的block列

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/37724/viewspace-152541/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/37724/viewspace-152541/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值