Oracle-逻辑体系结构

这里指数据文件的逻辑体系结构,包括1.表空间(TABLESPACE)  2.段(SEGMENT)  3.区(EXTENT)  4.块(BLOCK)

数据库(Database)由若干表空间(TABLESPACE)组成,表空间由若干段(SEGMENT)组成,段由若干区(EXTENT)组成,区由若干块(BLOCK)组成。

创建一个表,就相当于一个段,但是表并不一定只对应一个段,如果表包含LOB列类型,则LOB至少会有两个段:数据段和索引段,如果表有分区,

则每个分区又独立成段。

select t.* from dba_tablespaces t ;  ---查看表空间信息
select t.* from user_segments t;  ---段信息
select t.* from user_extents t;  ---区信息

1. BLOCK,BOLCK是Oracle最小逻辑数据单位,操作系统也有类似的块容量参数(block size),Oracle的Block大小一般为操作系统的整数倍。

数据块的组成分为 数据块头(包括标准内容和可变内容 common and variable header) , 表目录区(table directory) , 行目录区(row directory) ,可用空间区(free space),

 行数据区(row data) 5个部分。

 

  1. 数据块头包含了数据块的概要信息,例如.块地址(block address),此数据块所属段的类型(表or索引)
  2. 表目录区,只有一行数据插入到数据块中时,该行数据所在表的信息将存储在该区域。
  3. 行目录区,存放你插入行的地址 
  4. 空间区,即块中空余空间,由参数PCTFREE(每个段统一控制)控制,如果设置为10,表示该块将空余10%空间,如果是表或者索引块,该区域还会存储事务条目,大概有23字节开销
  5. 行数据区,就是存储具体的行或索引信息

 

 2. EXTENT 是Oracle分配空间的最小单位,注意"分配"两个字眼。

 

摘自: 《收货,不止Oracle》

posted @ 2018-03-05 20:49  jw-young  阅读(175)  评论(0编辑  收藏  举报