oracle segment 段的概念 段和表的区别和联系

  • Post author:
  • Post category:其他



1、 Segment 的定义


段(segment)是一种在数据库中消耗物理存储空间的任何实体(一个段可能存在于多个数据文件中,因为物理的数据文件

是组成逻辑表空间的基本物理存储单位)

更多的通用段是

表(table),用来保存行列结构的数据

索引(Index),用来加快访问速递

回滚(Rollback),在用户事务期间和执行事务恢复期间用来维护读一致性的特殊的段,回滚段会被宰第8章节管理一致和

并发继续说明

分区(partition),为实现性能目标把表分成更小的更加容易管理的片。


EXTENTS 是有由存储空间连续的块组成,但是每一个扩展只能驻留在单个数据文件中

Database blocks 是orcacle中更小的块,他操作系统块组成。

OS块


段是由扩展组成的,一到二亿个扩展,由于每个扩展只能属于单个数据文件,所以段可以分布在不同的数据文件中,

扩展是由数据库块组成的,

每个扩展,数据库块是有操作系统块组成。

表空间是为方便管理物理的分组模式对象(schema objects),表空间是物理结构(数据文件和和扩展)和逻辑结构(表和索引)的桥梁,

访问段可以用sql语言,c语言,cobol,java等语言。

一张只能占用一个段的空间,当这个表的数据增加,段可以为表重新分配新的区,这样空间就可以扩展了;

还有,一个段只属于一个表空间,一个表空间可以有多个段;表空间和段是逻辑存储结构上的一对多的关系;

表空间和数据文件也是一对多的关系,段和数据文件不是没有直接关系;

但一个段可以属于多个数据文件;

所以当段空间不足时,也就是相当于表空间不足;只要你扩展表空间大小或新增数据文件就可以了;