Oracle 表空间

在ORACLE数据库中,所有数据从逻辑结构上看都是存放在表空间当中,当然表空间下还有段、区、块等逻辑结构。从物理结构上看是放在数据文件中。

一个数据库可以包含多个表空间,一个表空间只能属于一个数据库。

一个表空间包含多个数据文件,一个数据文件只能属于一个表空间。

Segment(段):段是指占用数据文件空间的通称,或数据库对象使用的空间的集合;段可以有表段、索引段、回滚段、临时段和高速缓存段等。

Extent(区间):分配给对象(如表)的任何连续块叫区间;区间也叫扩展,因为当它用完已经分配的区间后,再有新的记录插入就必须在分配新的区间(即扩展一些块);一旦区间分配给某个对象(表、索引及簇),则该区间就不能再分配给其它的对象.

基本的表空间

以上是系统默认创建的表空间,除了USERS表空间以外,其他的表空间都是必要的。

表空间的分类

永久表空间

存放永久性数据,如表,索引等。

临时表空间

排序、分组等操作会产生大量的临时数据,但是内存无法存储这么大量的数据,这时就是使用磁盘上建立的临时表空间存放这些中间结果。

一个全局的临时表空间,可以由多个用户共享,谁需要谁使用。但它只能存放临时的数据,不能包含任何永久性对象。 建议用本地管理方式创建这个表空间。

UBDO表空间

如果你对表中的记录做了修改,它会对修改之前的信息进行保存,这样可以保证数据的回滚。Undo表空间只包含undo类型的对象,不能包含任何其他对象,只适合于数据文件和区间管理。

表空间的管理方式

字典管理:全库所有的空间分配都放在数据字典中。容易引起字典争用,而导致性能问题。

本地管理:空间分配不放在数据字典,而在每个数据文件头部的第3到第8个块的位图块,来管理空间分配。

创建表空间

CREATE TABLESPACE paul
DATAFILE '/oracle_10g/oradata/paul001.dbf'
SIZE 10G
EXTENT MANAGEMENT LOCAL
SEGMENT SPACE MANAGEMENT AUTO ONLINE;

删除表空间

DROP TABLESPACE paul;

posted on 2016-01-01 13:22  奈何作贼  阅读(153)  评论(0)    收藏  举报

导航