当前位置:操作系统 > Unix/Linux >>

Oracle高水位标志的概念

Oracle高水位标志: high-water mark

  可以用以下几点对high-water mark进行理解

  1.指一个表中曾经被用过的最后一个块

  2.如果有数据被插入表,high-water mark 就移到到被使用的最后一个块

  3.如果有数据被删除,high-water mark的位置不会变

  4.high-water mark被储存在表的段头(segment header of the table)

  5.当对表执行全表扫描时,oracle server 被所有的块直到high-water mark

  另外我的理解如下,

  1 如果为表分配了大量的extents , 但这些extent 还没使用可以手工收回。并且有如下两种情况

  第一种 minextent
  alter table tablename deallocate unused;

  将hwm以上所有没使用的空间释放

  第二种 minextent >hwm 则释放minextents 以上的空间。

  如果要释放hwm以上的空间则使用keep 0。

  alter table tablesname deallocate unused keep 0;

  2 truncate table命令可以将minextent 之上的空间完全释放。

  3 只是将hwm移动,释放的空间不会被其他段使用-- 本文来自:http://doc.xiaoyaxiao.com/4948.html
发表您的高见!
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,