oracle表空间

 

表空间

数据库的表空间可以分为四种:系统表空,临时表空间,撤销表空间,应用表空间。

Ø  系统表空间:包括system,sysaux两个表空间

Ø  临时表空间:执行order by,group by,create index等sql语句,会产生大量的临时数据。这些会先数据保存到PGA中,如果PGA空间不足就会写到临时段中。如果没有指定默认表空间,就存放在临时表空间。如果没有临时表空间就会在system表空间中创建临时段。这样的弊端就是吃了system表空间,产生了大量的碎片,甚至宕机。

Ø  撤销表空间:回退事务

Ø  应用表空间:没啥说的

大文件表空间:只能包含一个数据文件,但是可以包含4G个数据块。Create bigfile tablespace spacename….

小文件表空间:最多1024个比数据文件,关键字:samllfile, 默认是这种表空间。

表空间的区、段管理

区管理方式:

Ø  数据字典管理方式:空间表中分配、回收区空间时,对数据字典中的相关基础表进行更新

Ø  本地管理方式:表空间中区的分配与回收信息保存在表空间的数据文件中。此方式可以指定2钟区分配方式:

l   Uniform:统一分配,所有区的大小是相同的

l   Autoallocate:自动分配,区的大小随表的大小自动地动态改变,这种方式可以简化DBA工作。

段管理方式:

Ø  MANUAL:默认设置。使用可用列表来管理段的空闲数据块。空闲的数据块都存在列表中,需要存储空间时就从列表中进行搜索。

Ø  AUTO:使用位图来管理段的已用数据块和空闲数据块,能提供更哈偶的存储利用率。

Ø  使用uniform区分配方式:

Create tablespace space1

Datafile “c:\da\space\space1.dbf’ size 2M uniform size 128k;

Ø  使用autoallocate区分配方式:

Create tablespace space2

Datafile “c:\da\space\space2.dbf’ size 2M autoallocate;

Ø  使用auto段管理方式

Create tablespace space3

Datafile “c:\da\space\space3.dbf’ size 2M uniform size 128k segment space management auto;

修改表空间

修改表空间大小

表空间是个数据文件大小之和,修改表空间的大小有三种方式:

Ø  增加数据文件

Alter tablespace space1

Add datafile “c:\da\space\space1.1.dbf’ size 2        M

Ø  修改数据文件的大小

Alter tablespace

Datafile “c:\da\space\space1.dbf’ resize 4M

Ø  允许数据文件自动扩展

Alter database

Datafile “c:\da\space\space1.1.dbf’ autoextend on next 1M maxsize 20M

设置默认表空间

Ø  默认表空间

alter database default tablespace space1;

Ø  默认临时表空间

Alter database default temporary tablespace space2;

 

 

你可能感兴趣的:(oracle表空间)