1.基本概念:
oracle的逻辑结构一般可以分成:表空间(tablespace)、段(segment)、区(extent)、数据块(data block)。oracle由表空间组成,表空间由段组成,段由区组成,区由数据块组成。
1)表空间是数据库中最大的逻辑单位,几个表空间组成了数据库。
2)表空间由一个或多个数据文件在物理上构成,一个数据文件只能属于一个表空间,这里通过数据文件位置的不同形成表空间在多个磁盘的分布。
3)根据组成的段类型,表空间分成:数据段表空间、索引段表空间、临时段表空间、回退段表空间。
4)可以通过修改数据文件大小或者添加删除数据文件来管理表空间大小。
5)表空间可以在线(ONLINE)或者离线(OFFLINE),也可以将空间中的部分表在线或离线。也有只读(read only)或者读写(read write)的属性。--system等某些特殊表空间不得设置成离线或者只读
6)可以通过QUOTA参数限制用户在表空间上的使用大小。
7)特殊的临时表空间,主要存储在使用ORDER BY语句进行排序或者汇总时所需的临时空间。
9i后一般都用TEMP表空间做为临时表空间,不建议用system等特殊空间当临时表空间使用。基表不能在临时表空间上建立。系统指定默认临时表空间后不得使用其他表空间作为临时表空间。
2.相关表空间的SQL语法
1)使用sqlplus工具用如下语句可以创建数据库表空间,
create tablespace tbsname datafile '文件路径及文件名' size 500m;
2)查询表空间内的数据文件
select file_id,bytes,maxbytes,tablespace_name,file_name from dba_data_files;
3)查询表空间的自由空间相关信息
select tablespace_name,sum(bytes),sum(blocks) from dba_free_space group by tablespace_name;
4)查询临时文件的信息
select file#,status,name from v$tempfile;
5)查询用户所使用的临时表空间信息
select username,temporary_tablespace from dba_users;
3.表空间的应用
详细信息可参看
1)控制用户所占用的表空间配额。
2)控制数据库所占用的磁盘空间。
3)灵活放置表空间,提高数据库的输入输出性能。
4)大表的排序操作。
5)日志文件与数据文件分开放,提高数据库安全性。
6)使用步骤: 第一步:建立表空间。第二步:建立用户,并制定用户的默认表空间。
具体参照:http://baike.baidu.com/view/70152.htm