Oracle 基础篇 --- 存储管理

##第一. Oracle 存储结构


###1. 表数据的存储过程

此处输入图片的描述

创建表时,也会创建用于保存其数据的段。表空间包含一个段集合。

从逻辑上来说,表包含多行列值。行最终以行片段的形式存储在数据库块中。之所以将其称为“行片段”,是因为在某些情况下可能不会在一个位置存储整个行。当插入的行太大而无法装入单个块时,或当更新导致现有行超出了其当前空间时,就会发生这种情况。

###2. 数据库块

此处输入图片的描述

  • 块头:块头包含段类型(如表或索引)、数据块地址、表目录、行目录和事务处理插槽。每个插槽的大小为24字节,修改块中的行时会使用这些插槽。块头自上而下进行增长。
  • 行数据:这是块中行的实际数据。行数据空间自下而上进行增长。
  • 可用空间:可用空间位于块的中部,允许头和行数据空间在必要时进行增长。当插入新行或用更大的值更新现有行的列时,行数据会占用可用空间。 导致块头增长的事件的示例包括: - 行目录需要更多的行条目 - 需要的事务处理插槽数多于最初配置的数目

块中的可用空间最初是相邻的。但是,删除和更新操作可能会使块中的可用空间变成碎片。需要时Oracle 服务器会接合块中的空闲空间。

###3. 表空间和数据文件

表空间

  • 只能属于一个数据库
  • 包括一个或多个数据文件
  • 可进一步划分为逻辑存储单元

数据文件

  • 只能属于一个表空间和一个数据库
  • 是存储方案对象数据的资料档案库

###4. 表空间中的空间管理

本地管理的表空间:

  • 空闲区是在表空间中管理的。
  • 使用位图记录空闲区。
  • 每一位对应于一个块或一组块。
  • 位值指示空闲区或占用区。
  • 建议使用本地管理的表空间。

字典管理的表空间:

  • 空闲区是在数据字典中管理的。
  • 分配或取消分配区后会更新相应的表。
  • 支持这些表空间仅仅是为了实现向后兼容。

转载于:https://my.oschina.net/wangbinbin0326/blog/464224

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值