一、ORACLE的逻辑存储体系
ORACLE的逻辑存储体系包含了表空间(tablespace)、段(segment)、区(extent)、块(block)。
1.1 表空间
数据库是由一个或多个表空间组成, 表空间是由一个或多个数据文件组成。
一个表空间可能包含一个或多个段, 每个段都只属于一个表空间。
1.2 段
最常见的四种类型的段有数据段、索引段、临时段和回滚段。创建表时, 会创建一个表段。创建分区表时, 则么个分区会创建一个段。
段可以有来自多个不同数据文件的区, 也就是说段可以跨越一个表空间内的多个数据文件。
1.3 区
区是由一段连续的块组成。区可以是一个ORACLE数据块, 也可以一段连续的块组成。
1.4 块
块是ORACLE最小的存储单位, ORACLE请求数据都是以块为单位, 也就是说ORACLE请求数据都是块的整数倍, 如果ORACLE请求的数据量不到一块, ORACLE也会读取整个块。
块是数据库IO的最小的单位。
块的格式: 块中存放表的数据和索引的数据, 但是无论存哪种类型的数据, 块的格式都是相同的。块由块头(header)、表目录(table directory)、行目录(row directory)、空余空间(free space)和行数据(row data)五部分组成。
块头(header): 存放块的基本信息的, 如: 块的物理地址, 块所属的段的类型(是索引段还是数据段)。
表目录(table directory): 存放表的信息, 如果一些表的数据