在 Oracle 数据库中,"Data Block"、"Extent" 和 "Segment" 是数据库存储结构的三个不同层次。以下是它们之间的区别:
-
Data Block(数据块):
- 定义: 数据库中存储数据的最小单位,通常包含多个数据库记录。
- 大小: 数据块的大小是由数据库初始化参数决定的,通常是数据库管理的最小单位,典型大小为 4KB。
-
Extent(区):
- 定义: 由多个连续的数据块组成的逻辑存储单元。
- 大小: Extent 通常包含多个数据块,其大小也由数据库初始化参数控制。当数据库需要分配新空间给对象时,会以 Extent 为单位进行分配。
- 用途: 表和索引可以跨越多个 Extent。
-
Segment(段):
- 定义: Segment 是一个或多个 Extent 的集合,对应于表、索引或分区表等数据库对象。
- 用途: 一个表或索引至少有一个 Segment,但也可以有多个分区段,每个分区段对应于表的一个分区。
- 管理: 在 Oracle 中,Segment 是管理存储结构的主要单位。例如,对于一个表,每个分区都对应一个 Segment,而整个表也是一个 Segment。
简要概括:
- Data Block 是最小的存储单位,存放实际的数据记录。
- Extent 是由一组连续的 Data Block 组成的逻辑存储单元,用于管理数据库对象的空间。
- Segment 是一个或多个 Extent 的集合,对应于表、索引或分区表等数据库对象,是管理数据库存储结构的主要单位。
Was this helpful?
0 / 0