猪莫慌

2.2.1数据块(Data Blocks)

  数据块是Oracle逻辑存储结构中最小的逻辑单元,也是执行数据库输入/输出操作的最小存储单位。Oracle数据存放在"Oracle数据块"中,而不是操作系统块中,通常Oracle数据块是操作系统块的整数倍。如果操作系统块的大小是2048B,并且Oracle数据块的大小是8192B,则表示Oracle数据块由4个操作系统块构成。Oracle数据块有一定的标准大小,其大小被写入到初始化参数DB_BLOCK_SIZE中。另外,Oracle支持在同一个数据库中使用多种大小的块,与标准块大小不同的块就是非标准块。

  通过V$PARAMETER数据字典来查询Oracle标准数据块的大小,如下:

  SELECT NAME,VALUE FROM V$PARAMETER WHERE NAME = 'db_block_size';

 

   数据块可以存放表数据,索引数据和簇数据等,无论是存放那种类型的数据,其数据结构都是相同的。数据块由块头、表目录、行目录、空余空间和行数据这5部分组成。

  数据块中各个组成部分介绍如下。

  块头:存放数据块的基本信息,如块的物理地址、块所属的段类型。

  表目录:存放表的相关信息。如果数据块中存储的数据是表数据,则表目录中存储有关这些表的基本信息。

  行目录:如果块中有行数据存在,则这些行的信息将被记录在行目录中。这些信息包括行地址等。

  空余空间:空余空间是一块未被使用的区域,这块区域用于新行的插入和已存在行的更新。

  行数据:用于存放表数据和索引数据的地方。

  通常把块头、表目录和行目录三部分组合起来称为头部信息区,该区域不存放数据,而是存放整个块的引导信息,起到引导系统读取数据的作用。所以头部信息区若遭到破坏,则Oracle系统将无法读取这部分数据。另外,空余空间和行数据公共构成块的存储区,用于存放真正的数据记录。

 

posted on 2020-11-02 17:07  猪莫慌  阅读(755)  评论(0编辑  收藏  举报

导航