表空间是组织结构和分配空间的逻辑结构。除了数据文件之外,控制文件、重做日志文件、归档日志文件等其他文件都不属于任何表空间。
首先明确概念:表空间是ORACLE内部定义的一个概念,是为了统一ORACLE物理和逻辑上的结构而专门建立的,从物理上来说,一个表空间是由具体的一个或多个磁盘上数据文件构成的(至少1对1,可以1对多),从逻辑上来说一个表空间是由具体的一个或多个用户模式下的表,索引等等里面的数据所构成的............
因此从用户的角度来看是不应该看到磁盘上物理的数据文件的,其从小到大的视角是
这样的关系:
字段值 --> 记录值 --> 表数据 -->
用户 --> 表空间 --> ORACLE
而从一个ORACLE DBA的视角来看应是这样的关系:
数据文件 --> 表空间 -->
ORACLE
表空间的特性如下:
1.一个数据库可以有多个表空间。可以在数据库中创建、删除表空间;
2.一个表空间只属于一个数据库;
3.一个表空间必须要有一个数据文件;
4.一个表空间的大小等于其中所有数据文件的大小之和。数据库的大小等于其中所有表空间的大小之和;
5.表空间可以被联机和脱机。SYSTEM表空间不能被脱机;
6.表空间可以在读写、只读状态之间切换;
7.每个表空间由一个或多个物理存在的操作系统的数据文件组成。这种数据文件可以具有固定的大小,或允许其自动变大。可以在表空间中添加、删除数据文件;
8.方案对象、表、索引的数据都被存储在表空间的数据文件中。一个数据文件存储不下,就存储在另一个数据文件中,只要该数据文件是本表空间中的就可以;
9.一个用户默认使用一个表空间,但他的不同方案对象的数据可以被存储在不同表空间中;
10.一个用户使用的表空间的数量是有一定配额的,不能超出这个配额;
11.可以根据使用目的,创建不同类型的表空间,如永久表空间、临时表空间、撤销表空间、大表空间等。不同类型的表空间的格式、使用方式及目的是不同的。
表空间的作用: 1.控制数据库所占用的磁盘空间;
2.控制用户所占用的表空间配额,也就等于控制用户所占用的配额空间;
3.通过将不同表的数据、分区表中不同分区的数据放置到不同的表空间中,可以提高数据库的I/O性能,并有利于进行部分备份和恢复等管理工作;
4.能够将一个表的数据和这个表的索引数据分别防止到不同的表空间中,同样可以提高数据库的I/O性能;
5.可以将表空间设置成只读状态而保持大量的静态数据。