基本关系:数据库---表空间---数据段---分区---数据块

表空间(tablespace)
表空间(tablespace)是包含物理数据文件的逻辑实体,存放数据库的所有可用数据,因此表空间的尺寸也是包含数据的数据文件尺寸的总和,是oracle 主要的逻辑存储结构。

tablespace是数据库中数据逻辑存储的地方,一个tablespace可以包含多个数据文件。若数据块(data Block)配置PCTFREE,PCTUSER,FREELIST三个的配置如果和tablespace的配置有冲突,以tablespace为准。

一个表空间就是一片磁盘区域,他由一个或者多个磁盘文件组成,一个表空间可以容纳许多表、索引或者簇等。每个表空间有一个预制的磁盘区域称为初始区间(initial   extent)用完这个区间后再用下一个,直到用完表空间,这时候需要对表空间进行扩展,增加数据文件或者扩大已经存在的数据文件。

表空间是Oracle数据库最大的逻辑结构,一个Oracle数据库在逻辑上由多个表空间组成,一个表空间只隶属于一个数据库。Oracle中有一个称为SYSTEM的表空间,这个表空间是在创建或安装数据库时自动创建的。主要用于存储系统的数据字典,过程,函数,触发器等;也可以存储用户的表,索引等。一个表空间可以有多数据文件,但是一个数据文件只能属于一个表空间。

表空间通过v$tablespace进行访问。
SQL> desc v$tablespace;
Name                                Type           Nullable Default Comments
--------------------------- ------------ -------- ------- --------
TS#                                   NUMBER           Y                         
NAME                                VARCHAR2(30)     Y                         
INCLUDED_IN_DATABASE_BACKUP VARCHAR2(3)        Y                         
BIGFILE                             VARCHAR2(3)       Y                         
FLASHBACK_ON                       VARCHAR2(3)    Y                         
ENCRYPT_IN_BACKUP               VARCHAR2(3)      Y                         
CON_ID                              NUMBER          Y

注:建表语句时设置表空间
tablespace TBS_CL
pctfree 10
initrans 1
maxtrans 255
storage
(
  initial 64K
  next 1M
  minextents 1
  maxextents unlimited
  pctincrease 0
);

表空间包含段
段里包含区段
区段包含数据块

05-28 19:34