0
点赞
收藏
分享

微信扫一扫

读书笔记:Oracle数据库中的"段":数据存储的基本单位


本文为个人学习《Expert Oracle Database Architecture Techniques and Solutions for High Performance and Productivity(第四版本》一书过程中的笔记与理解分享,仅用于学习与交流,部分内容参考原书观点并结合>实际经验进行整理。若涉及版权问题,请联系删除或沟通处理。也请大家支持购买原版书籍。

Oracle数据库中的"段":数据存储的基本单位

什么是段?

想象一下Oracle数据库就像一个大型仓库,而"段"就是这个仓库里的各种储物柜。每个储物柜专门存放不同类型的东西,比如有的放表格数据,有的放索引信息。这些储物柜就是Oracle中的"段"——它们是占用实际存储空间的基本单位。

常见的段类型

1. 表段(Table Segment)

这是最常见的段类型,就像仓库里专门存放商品清单的柜子。当我们创建一张普通表时,Oracle就会自动创建一个表段来存储数据。

2. 索引段(Index Segment)

相当于仓库的目录索引柜,帮助快速找到需要的商品。比如主键约束就会自动创建索引段,就像给商品编号方便查找。

3. 特殊存储柜:LOB段

当需要存储大文件(如图片、长文档)时,Oracle使用专门的LOB段:

  • LOBSEGMENT:实际存放数据内容的大柜子
  • LOBINDEX:记录这些大件物品存放位置的索引

4. 分区段(Partition Segment)

就像把一个大柜子分成多个小格子,每个分区段只存储表或索引的一部分数据,方便管理和查询。

5. 簇段(Cluster Segment)

这是一种特殊的存储方式,可以把相关联的数据(比如订单和订单明细)物理上存放在相邻位置,提高查询效率。

段的空间管理

Oracle提供了两种管理这些"储物柜"空间的方式:

自动管理(ASSM) - 推荐使用

就像智能储物柜系统:

  • 自动调节空间使用
  • 只需设置基本参数(PCTFREE)
  • 管理简单高效

手动管理(MSSM) - 传统方式

需要DBA像仓库管理员一样:

  • 手动设置各种参数
  • 精细控制每个细节
  • 管理复杂,适合特殊需求

实际创建表时的段情况

当我们执行一个简单的建表语句时:

CREATE TABLE 商品信息 (
   商品编号 INT PRIMARY KEY,
   商品描述 CLOB,
   商品图片 BLOB
) SEGMENT CREATION IMMEDIATE;

实际上Oracle会创建多个段:

  1. 表段 - 存储基本商品信息
  2. 索引段 - 用于主键约束
  3. 两个LOB段 - 分别存储商品描述(CLOB)和商品图片(BLOB)
  4. 两个LOB索引 - 管理大对象的位置

重要提示

现代Oracle版本(11g R2以后)默认使用"延迟段创建"功能,只有实际插入数据时才会创建段。这就像先规划好储物柜位置,等真正有东西要存时才分配实际空间。但企业版才支持这个功能,在不同版本间迁移时需要注意兼容性问题。

理解这些"段"的概念,就像了解仓库的储物柜系统,能帮助我们更好地设计和管理Oracle数据库的存储结构。

------------------作者介绍-----------------------

姓名:黄廷忠

现就职:Oracle中国高级服务团队

曾就职:OceanBase、云和恩墨、东方龙马等


举报

相关推荐

0 条评论