段空间管理

Oracle的段空间管理:
  1. 手动段空间管理:DBA设置freslistsfreelist groupspctused和其他参数来控制如何分配使用重用段中的空间。
  2. 自动段空间管理(ASSM):DBA只需设置一个参数pctfree,其他都由Oracle自动管理。
手动段空间管理由freelists(空闲块列表)管理段空间,如果只有一个freelists,一次只有一个事务能查看和修改这个freelists,事务之间必须相互等待。如果有多个freelists和freelist groups,就能提高并发性,因为事务可以查看不同的freelists,而不会相互竞争。

  1. 高水位线(HWM)
如果把表想象成从左到右依次排开的一系列块,HWM就是包含了数据的最右边的块。
随着数据的增加,HWM会升高。但如果用delete语句删除表中的数据,HWM不会随之降低。这会影响全表扫描的效率,因为Oracle在全表扫描时会扫描HWM下的所有块,即使其中不包含任何数据。truncate会把表中的HWM重置为0,还会截断索引,所以如果打算删除表中所有的行,应该选择truncate。

在手动段空间管理下,每个对象至少有一个freelist,freelists记录 HWM以下有空闲空间的数据块,就像用一条线把有空闲空间的数据库串起来一样。 仅当freelist为空时才使用HWM以上的数据块,并推进HWM,将新的数据库加到freelist中。
为一个表段增加freelist
alter table emp storage( freelists 5);
使用多个freelist时,会有一个主freelist和多个进程freelist,对于一个给定的会话,会根据会话的散列值为其指定一个进程freelist。每个进程只在自己的freelist上寻找空闲块,如果没有会求助主freelist,如果主freelist中也没有空闲块了,会推进HWM,甚至要申请新的extent。

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

转载于:http://blog.itpub.net/25791987/viewspace-718202/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值