Oracle的段空间管理:
- 手动段空间管理:DBA设置freslists、freelist groups、pctused和其他参数来控制如何分配、使用和重用段中的空间。
- 自动段空间管理(ASSM):DBA只需设置一个参数pctfree,其他都由Oracle自动管理。
- 高水位线(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/