Storage structure & Relationship

1.目标
a.描述数据库的逻辑结构
b.列出segment的类型和使用
c.控制块空间分配的重要配置
d.了解常用的视图
2.
segment的类型
表,分区表,cluster,index,index-organized-table,index partition,undo,temporary,lob,nested table(嵌套表),bootstrap segment as so on;

Hints
1>:如果存储参数改变,只对将来申请的extents有效.
2>:有些参数在只能在segment级改变,不能在tablespace级
3>:如果在表空间级别定义了minimun extent size将会影响到所有的extents的分配
4>:一个segment可以跨多个数据文件,但是不能跨表空间,一个segment是由连续的block组成,一个extent只能位于一个数据文件里
5>:extent被分配的时候,只有当segment被创建(Created),被扩展(Extended),被改变(Altered)
6>:extent被释放的时候,只有当segmeng被删除(droped),被改变(Altered),被截取(truncated)

db_block_size
1>:系统表空间和临时表空间只能使用db_block_size
2>: db_cache_size缓存标准的block.最小为one granule(sga定义的最小的单位,如果sga大于128M,one granule=16M,否则为4M),Default为64M
3>:DB_nk_cache_size不能是标准block size的大小
4>:定义了blocksize,表空间的块大小就不能被改变

Hints:
1>:对于分区表,所有的分区表空间的blocksize大小必须一致
2>:临时表空间和系统表空间必须是标准的块大小
3>:IOT和LOB segment的块大小可以和表的块大小不一样

Data block size contents
1>:consist of Header,free space,data
2>:重要参数
initrans:控制多少个事务可以对这个块进行操作(Transation slots)
maxtrans:控制最大的事务数
pctfree:最少留存多少的空间,百分比.
pctused:最少的使用空间,也是百分比.

Concepts:
freelist:oracle的segment会收集freelist的链表,如果当某些数据库的使用情况小于pctused的时候,该数据块被加入到freelist的链表中,下次oracle插入记录的时候,就会优先查找freelist的内容.freelist可以理解为block的指针

3>:块管理方式
Automatic segment-space management,采用bitmap管理方式
有专门的block来存放bitmap信息(bittmaped blocks BMSs),只对local extent management的表空间有效,for example:
create tablespace tbspacename datafile ''
extent management local uniform size 64k--(uniform 代表每个extent为64k)
segment space management auto;

Manual management
Concepts:
HWM(High Water Mark)

你可能感兴趣的:(数据结构,oracle,sql,cache,配置管理)