第九章Storage Structure & Relationships
data block management
1、自动段空间管理Automatic segment-space management
2、手动管理Manual management
Automatic Segment-Space management(ASSM)
1、数据库段的空闲空间管理方式的一种
2、段的空闲空间和已使用空间使用bitmap记录,而不是使用free list
3、优势
①容易管理
②优化空间使用率
③对于并发insert操作性能更好
4、bitmap段包含一个位图bitmap,用来描述段中每个block的状态以及空闲空间
5、bitmap存储在独立的blocks中,这些blocks就叫做bitmapped blocks(BMBs)
6、当insert新数据时,Oracle server查找bitmap,找到一个空间合适的block
7、block空间发生变化时,bitmap会更新该block的状态
配置ASSM
1、ASSM只在表空间层面生效,且只对locally managed表空间有效
create tablespace data02 datafile ‘/u01/oradata/data02.dbf’ size 5M extent management local uniform size 64k segment space management auto;
2、表空间创建完成后,表空间内的所有段都继承ASSM特性
手动data block管理
1、使用以下参数手动配置data block
①pctfree
②pctused
③freelist
2、Oracle 9i之前只支持手动管理
HWM(High-Water Mark)高水位线
新建的表(table)HWM相当于最左边,当插入大量数据后,HWM会向右移动。HWM代表着这个表曾经最多同时使用了多少个block。如果删除了部分数据,HWM不会向左移动,意味着HWM左边某些块完全空闲。同时HWM左边有数据的block中也可能有些block空间没有完全使用完。
Oracle后期再次插入数据时,会优先从freelist中查找HWM左边有数据的block中有没有合适的block有空闲空间存放数据。如果没有合适的block,则从HWM左边完全空闲的block中选择一个或多个block存放数据。如果还是没有合适的block,则从HWM右侧的block中选择block存放数据,此时HWM相应的需要向右移动。
插入100万条记录