现在的位置: 首页 > 综合 > 正文

oracle 数据块结构

2013年10月13日 ⁄ 综合 ⁄ 共 738字 ⁄ 字号 评论关闭

oracle存储层次体系结构看,oracle数据库由一个或者多个表空间构成。

表空间:是一个逻辑存储容器,它包含段,由一个或多个数据文件组成。段和数据文件的关系是,数据文件存储在段中。

:是实际占用存储空间的对象,段分为表段、索引段、回滚段、临时段等,段本身由一个或者多个区段组成。

区段:是文件中一个逻辑上连续分配的空间,这里说是逻辑上,其实文件在物理磁盘上的分配并不是连续的,区段又由块组成。

:是oracle中最小的空间分配单位。

通常,oracle从磁盘读写的就是块,数据行,索引条目,临时排序结果就存储在块中。Oracle中块的常见大小有:2KB,4KB,8KB,16KB。在某个特定的表空间中,块的大小是相同的。当然块的大小也可以不是2的幂,但是最好用2的幂次作为块的大小。下图是段、区段、数据块之间的关系图:


创建数据库时,就为数据库分配表空间,所以块也同时被创建。下图是块的具体结构:


块首部:包含块类型的有关信息(表快、索引块等)、块上发生的活动事务和过去事务的有关信息(仅事务管理的块有此信息,例如临时排序块就没有事务信息),以及块在磁盘上的地址(位置)。

表目录:包含了把行存储在这个块上的表的有关信息(可能一个块上存储了多个表的数据)。

行目录:包含块中行的描述信息,它是一个指针,指向块中数据部分中的行。

块首部,表目录,行目录统称为块开销,这部分不存放数据,而是由oracle用来管理块自身。

下面这个链接是关于oracle中数据库怎样使用空闲空间的:

http://www.relationaldbdesign.com/managing-database-objects/module2/oracle-free-space.php

数据部分主要是用于存储表中的数据。

抱歉!评论已关闭.