表空间
数据库的表空间可以分为四种:系统表空,临时表空间,撤销表空间,应用表空间。
Ø 系统表空间:包括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;
--转自