管理表空间和数据文件——数据库逻辑结构


表空间是数据库的裸机组成部分。从物理上说,数据库数据存放在数据文件中;从逻辑上说,数据库数据存放在表空间中,并且表空间是由一个或多个数据文件组成的,是一对多的关系。

oracle提供了一套逻辑结构来安排数据存储,这些逻辑结构包括表空间,段,取以及oracle块。

1.表空间(tablespace)

表空间用于逻辑组织数据库数据。数据库逻辑上由一个或多个表空间组成,而表空间物理上是有一个或多个数据文件组成的。表空间作用:

  • 通过表空间可以控制数据库所占用的磁盘空间。
  • 通过表空间可以控制用户所占用的空间配置。
  • 通过表空间,dba可以将不同类型的数据库部署到不同位置。一方面可以提高i/0性能,另一方面友谊与备份和恢复等管理操作。

2.数据文件(data file)

数据文件是表空间的物理组成部分,表空间与数据文件是一对多的关系,并且一个数据文件只能属于一个表空间。数据库使用的原则是:

  • 少量大数据文件要优于大量小数据文件。
  • 当建立数据库时,使用永久参数maxdatafiles可以指定在控制文件中为数据文件所预留的空间(默认32),通过从建数据文件可以修改永久参数设置。
  • 初始化参数db_files限制了数据库可以同时打开数据库最大文件个数。如果数据文件个数达到了该参数限制,那么无法建立新的数据文件。
  • 从性能角度考虑,应该将数据文件和从做日志不熟部署到不同的磁盘。应为从做日志的i/0操作非常频繁,所以重做日志放到速度最快的磁盘上。

3.段(segment)

段用于存储特定逻辑对象的所有数据,他由一个或多个区组成。当建立表,索引,或簇时,oracle会为这些对象分配段,以存放他们的数据信息,并且段名与对象名完全相同。下面是常用段类型。

  • 表段(数据段):用于存放表的数据(表名=段名)。
  • 索引段:用于存放索引的数据(索引名=段名)。
  • undo段:用于存放事务所修改数据的旧值。
  • 临时段:用于存放排序操作所产生的的临时数据。以下操作会产生临时数据:
  1. create index
  2. select   order by
  3. select distinct 
  4. select group by
  5. select union
  6. select intersect
  7. select minus
  8. analyze命令。

4.区(extent)

区由相邻的数据块组成,他是oracle进行空间分配的逻辑单位,并且一个区只能唯一地属于一个数据文件。当建立段时,oracle至少为其分配一个区;当段不足以容纳新数据时,oracle会自动扩展该段,并且为其增加一个区。

5.oracle块

oracle块也称数据块,他是oracle在数据文件上执行i/0操作的最小单位,其取值为2k,4k,8k,16k,32k。


 

原文地址:https://www.cnblogs.com/zhaojiedi1992/p/oracle11g_sql_0041.html