ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 关于segment的high water mark

关于segment的high water mark

原创 Linux操作系统 作者:lawzjf 时间:2006-05-25 00:00:00 0 删除 编辑

高水位是表段的一个属性,是存储过数据的数据块的下一个数据块块号,当向表添加数据时,只能加进高水位前面的数据块,当高水位前面没有足够的数据块容纳新加入的数据时,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/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 建库脚本下载
请登录后发表评论 登录
全部评论

注册时间:2008-01-18

  • 博文量
    279
  • 访问量
    935073