oracle 手动分配extent_Oracle中segment extent block之间关系

tablespace是逻辑上的概念,datafile是物理上的概念。

一个tablespace可以由多个datafile组成,一个datafile不能跨越多个tablespace。table中的数据,通过hash算法分布在tablespace中的各个datafile中,tablespace是逻辑上的概念,datafile则在物理上储存了数据库的种种对象。

表空间是oracle数据库中最大的逻辑单位与存储空间单位,数据库系统通过表空间为数据库对象分配空间。表空间在物理上体现为磁盘数据文件,每一个表空间由一个或多个数据文件组成,一个数据文件只可与一个表空间相联系,这是逻辑与物理的统一。

Segment(段)、extent(区、 block(块)都是Oracle存储的物理概念名称

BLOCK是Oracle存储的最基本单位,由DB_BLOCK_SIZE制定,通常为8KB,也可以定义为2KB,4KB,16KB,32KB,64KB等,磁盘最小存储单位是sector(512BYTE 操作系统概念),Oracle数据块由连续的sector组成,Oracle读写单位是数据块,应尽量设置BLOCK大小为磁盘数据块大小的整数倍,避免IO浪费

连续的数据块组成一个分区extent,便于空间管理,包括空间的分配和释放。段的空间是以区为单位分配的。提高了分配空间的效率,但是带来了空间碎片。

Oracle每个表或索引都会对应这一个段。如果使用分区表或者分区索引,每个分区(partition)都对应着一个段。每个段都有名字,即对象(表、索引)的名字,段由extent组成,但不要求连续。

一个table至少是一个segment,如果分区表,则每个分区是一个segment,table可以看成是一个逻辑上的概 念,segment可以看成是这个逻辑概念的物理实现;segment由一个或多个extents组成,segment不可以跨表空间但可以跨数据文件;extent由多个连续的blocks组成,不可以跨数据文件;block由1-多个os块组成,是oracle i/o的最小存储单位。

区又叫盘区,是数据文件中一个连续的分配空间,它比块要大,由块组成。有些对象分配空间时可能至少需要两个盘区,比如回滚段,而这两个盘区不一定要求相连。区的大小从一个块到2GB不等

段是oracle数据库中的分配单位,对象如表、索引等都是以段为单位进行分配。当创建一个表时将创建一个表段,创建一个索引时就创建一个索引段。每一个消耗存储空间的对象最终被存储到一个单一的段中。有回滚段、临时段、聚簇段、索引段等。

表空间是一个逻辑容器,它和数据文件关联起来,一个表空间至少有一个数据文件与之关联。一个表空间可以有多个段,一个段只能属于一个表空间。

方案(schema)又叫模式,是比表空间小一级的逻辑概念,它也是一个逻辑容器。多个用户可能共用一个表空间,那如何区分开每一个用户?那么在表空间中对每个用户都有一个对应的方案,用于保存单个用户的信息。

oracle中存储的层次结构总结如下:

一、数据库由一个或多个表空间组成

二、Tablespace可以理解为segments的逻辑容器(包含多个段),由一个或多个数据文件组成

三、Segment是db对象占有空间的最小单位,一个对象可以包含0个、1个或多个segment,段由一个或多个区组成

四、Extent是数据文件中一个连续的分配空间,由一个或多个块组成。Extent是空间分配的最小单位,oracle都是以extent为单位为对象分配空间的

五、Block块是数据库中最小、最基本的空间单位,是数据库使用的最小的I/O单元,数据的读取都是以block的整数倍进行的,通常一个db block通常是一个os block的整数倍大小

六、Schema可以理解为用户下的所有对象的集合,每个用户都有一个对应的方案

转载理解若有不对的,欢迎大家指正,谢谢~

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值