Oracle表空间


Oracle表空间

文章插图
Oracle表空间【Oracle表空间】SQL Server资料库与Oracle资料库之间最大的区别要属表空间设计 。Oracle资料库开创性地提出了表空间的设计理念,这为Oracle资料库的高性能做出了不可磨灭的贡献 。可以这幺说,Oracle中很多最佳化都是基于表空间的设计理念而实现的 。
基本介绍中文名:Oracle表空间
外文名:tablespaces
性质:资料库
创新之处:表空间的设计理念
载体:数据档案
基本概述Oracle表空间之基本概念ORACLE资料库被划分成称作为表空间的逻辑区域——形成ORACLE资料库的逻辑结构 。一个ORACLE资料库能够有一个或多个表空间,而一个表空间则对应着一个或多个物理的资料库档案 。表空间是ORACLE资料库恢复的最小单位,容纳着许多资料库实体,如表、视图、索引、聚簇、回退段和临时段等 。每个ORACLE资料库均有SYSTEM表空间,这是资料库创建时自动创建的 。SYSTEM表空间必须总要保持在线上,因为其包含着资料库运行所要求的基本信息(关于整个资料库的数据字典、在线上求助机制、所有回退段、临时段和自举段、所有的用户资料库实体、其它ORACLE软体产品要求的表) 。一个小型套用的ORACLE资料库通常仅包括SYSTEM表空间,然而一个稍大型套用的ORACLE资料库採用多个表空间会对资料库的使用带来更大的方便 。例如:便于理解,把oracle资料库看作一个实在房间,表空间可以看作这个房间的空间,是可以自由分配,在这空间里面可以堆放多个箱子(箱子可以看作资料库档案),箱子里面再装物件(物件看作表) 。用户指定表空间也就是你希望把属于这个用户的表放在那个房间(表空间)里面 。表空间是一个虚拟的概念可以无限大,但是需要由数据档案作为载体 。Segment(段)段是指占用数据档案空间的通称,或资料库对象使用的空间的集合;段可以有表段、索引段、回滚段、临时段和高速快取段等 。Extent(区间)分配给对象(如表)的任何连续块叫区间;区间也叫扩展,因为当它用完已经分配的区间后,再有新的记录插入就必须在分配新的区间(即扩展一些块);一旦区间分配给某个对象(表、索引及簇),则该区间就不能再分配给其它的对象.查看錶空间:SQL> select * from v$tablespace;TS# NAME INCLUD BIGFIL FLASHB ENCRYP------------------------------------------------------------------------------SYSTEM YES NO YESUNDOTBS1 YES NO YESSYSAUX YES NO YESUSERS YES NO YESTEMP NO NO YES查看每个表空间有哪些数据档案:SQL> desc dba_data_files;Name Null? Type-----------------------------------------------------------------------------FILE_NAME VARCHAR2(513)FILE_ID NUMBERTABLESPACE_NAME VARCHAR2(30)BYTES NUMBERBLOCKS NUMBERSTATUS VARCHAR2(9)RELATIVE_FNO NUMBERAUTOEXTENSIBLE VARCHAR2(3)MAXBYTES NUMBERMAXBLOCKS NUMBERINCREMENT_BY NUMBERUSER_BYTES NUMBERUSER_BLOCKS NUMBERONLINE_STATUS VARCHAR2(7)查看详细数据档案:SQL> select file_name,tablespace_name from dba_data_files;FILE_NAME TABLESPACE_NAME----------------------------------------------------------------------------------------------------------------/ora10/product/oradata/ora10/users01.dbf USERS/ora10/product/oradata/ora10/sysaux01.dbf SYSAUX/ora10/product/oradata/ora10/undotbs01.dbf UNDOTBS1/ora10/product/oradata/ora10/system01.dbf SYSTEM创建一个表空间:SQL> create tablespace paul datafile '/ora10/product/oradata/ora10/paul01.dbf' size20m;Tablespace created.查看我们创建的表空间:[ora10@localhost ora10]$ pwd/ora10/product/oradata/ora10[ora10@localhost ora10]$ lscontrol01.ctl control03.ctl redo01.log redo03.log system01.dbf undotbs01.dbfcontrol02.ctl paul01.dbf redo02.log sysaux01.dbf temp01.dbf users01.dbf