首页 > 代码库 > 读书笔记oracle之逻辑体系结构

读书笔记oracle之逻辑体系结构

一、oracle逻辑体系结构图


二、逻辑结构组成

oralce的逻辑结构包括

1、表空间

2、段

3、区

4、块

oracle数据库由若干个表空间组成,表空间由若干个段组成,段由若干个区组成,区由若干个块组成。

表空间又分为系统表空间、回滚段表空间,临时表空间和用户表空间。

我们所创建的表与逻辑结构中的段相对应,T表就是T段,但一个表不是只对应一个段(如果表中有lob字段,则lob字段至少对应2个段,一个数据段一个索引段,或者表是分区表,则每个分区对应一个段)

区的设计是为了避免过度扩展,因为块的尺寸太小,如果按块进行扩展,则效率太低;

块是oralce最小逻辑数据单位,区是oracle分配空间的最小单位;数据库块默认大小是8k,也可以是其他大小,一般为操作系统os块的整数倍。


当我们创建T表(段)时,oracle就为其分配了包含若干个数据块的初始数据区(initial extent),此时表中还没有数据,这些数据块是为了做准备;当向T表插入数据,初始数据区装满了,而且又有新数据要插入时,oracle会自动为这个段分配一个新增数据扩展区,这个新增数据扩展是一个段中已有数据扩展之后分配的后续数据扩展,容量大于或等于之前的数据扩展,即含有的数据块可能会多余之前的区;

数据扩展有2种方式,一种是固定容量的扩展(uniform),另一种是系统管理的扩展(autoallocate),那么分配的数据扩展的容量可以是用户设定的固定值,也可以是系统自动决定的可变值,这取决于用户创建表空间时,使用uniform指令,还是autoallocate指令;


三、逻辑结构之块

1、查询数据库块大小

SQL> show parameter db_block_size;

NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
db_block_size                        integer                8192

四、逻辑结构之表空间

1、普通数据表空间、回滚段表空间、系统表空间数据文件在dba_data_files表里查询

2、临时表空间数据文件在dba_temp_files表里查询

五、逻辑结构之区

1、查看某表的各区信息