一、概述
逻辑结果从小到大可以划分为:块(block)、区(extent)、段(segment)、表空间
块(block):块是oracle数据库的最小逻辑单元,所有的数据存取都以块为单位进行。
区(extent):区是oracle数据库的最小分配单位,由一组连续的块组成,块可以在物理上不联系,但必须位于 同一个物理文件,单个区不可以跨文件分配。
段(segment):由一个或者多个区组成,一个逻辑结构。例如一个表就对应一个段。
表空间(tablespace):从逻辑上看由一个或者多个段组成,从物理上看由一个或者多个表空间组成(最大的逻辑单元)
1、块(block)
从10g开始,每个数据库里面可以对应几个大小模块的块,可以是非标准的块。
合理的设置pctfree、以及pctused可以在提高空间利用率的同时减少行迁移。
Pctfree:当块的空闲空间达到该值,则不再插入新值;
Pctused:当块的利用率低于该值,才可能重新给该快插入新值
2、区(extent)
oracle数据库中的最小分配单元,由一组连续的块组成。
创建存储对象的时候,至少分配一个区,第一个分配区叫做初始区。当初始区填充满之后,系统会为对象分配后续扩展区(incremental Extent).
对象分配扩展自动进行,分配方式有多种,创建表空间的时候指定。Extent management local 默认为autoallocate
- autoallocate:自动确认初始化及扩展区的大小。
- Uniform:手动指定初始区的大小以及扩展大小。Uniform size 10M;
3、段(segment)
段由一系列的区组成,一个段只属于特定的对象(如表、索引、LOB列等)。
常见的段(1)数据段(2)索引段(3)回滚段(4)临时段
4、表空间(tablespace)
表空间是数据库中最大的逻辑存储单位,同时也是直接与数据库物理结构关联的逻辑单位 ,每个表空间由一个或者多个数据文件组成(最大不超过1023个)。
特殊表空间类型
- 1 system表空间
- System 表空间主要用来保存数据库的数据字典,如dba_*,all_*,user_*等均保存在system表空间中;所有pl/sql程序源代码亦保存在system表空间中。
- 建议不要在system表空间创建和system表空间无关的对象。
- 2 sysaux表空间
- system表空间的辅助空间。存放例如logminer等创建的兑现
- 3undo表空间
- 该表空间只能创建undo段,专门用来保存undo数据。
- Create undo tablespace undotbs2 datafile ='/u01/app/oracle/undotbs2.dbf' size 200M;
- Alter system set undo_tablespace =undotbs2;
- 该表空间只能创建undo段,专门用来保存undo数据。
- 4 临时表空间
- 该空间存储的对象都是临时的。
- Create temporary tablespace temp01 tempfile='/u01/app/oracle/temp01.dbf' size 200M;
- Alter tablespace temp01 add tempfile= '/u01/app/oracle/temp02.dbf' size 200M;
- Alter user scott temporary temp01
- 该空间存储的对象都是临时的。
转载于:https://blog.51cto.com/carefree/1157844