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个部分。
- 数据块头包含了数据块的概要信息,例如.块地址(block address),此数据块所属段的类型(表or索引)
- 表目录区,只有一行数据插入到数据块中时,该行数据所在表的信息将存储在该区域。
- 行目录区,存放你插入行的地址
- 空间区,即块中空余空间,由参数PCTFREE(每个段统一控制)控制,如果设置为10,表示该块将空余10%空间,如果是表或者索引块,该区域还会存储事务条目,大概有23字节开销
- 行数据区,就是存储具体的行或索引信息
2. EXTENT 是Oracle分配空间的最小单位,注意"分配"两个字眼。
摘自: 《收货,不止Oracle》