为了合理管理业务数据、索引数据、临时信息以及回退信息,需要创建不同类型的表空间,为了便于实现数据的分区管理。在创建各个表空间的同时,需要合理的规划表空间的存储设置。
一、表空间介绍
表空间的类型:
永久表空间(PERMANENT TABLESPACE)、
临时表空间(TEMPTABLESPACE)、
撤销表空间(UNDO TABLESPACE)
表空间的管理方式:使用 EXTENT MANAGEMENT + [属性] + SIZE + [XXm] 字句设置
属性:字典管理(DICTIONARY)和本地管理(LOCAL)[默认]
区分配方式(在本地管理方式中):
属性:定制分配(UNIFORM)和自动分配(AUTOALLOCATE)[默认]
段分配方式:使用 SEGMENT SPACE MANAGEMENT + [属性] 字句设置
属性:手动管理(MANUAL)和自动管理(AUTO)[默认]
二、创建永久性表空间
案例1:
为数据库创建一个永久性的表空间HRTEST1,区定制分配,段采用手动管理方式
Create tablespace HRTEST1 datafile
'D:\app\danser\oradata\TablespaceTest01\HRTEST1_1.dbf' size 50M EXTENT MANAGEMENT LOCAL UNIFORM size 512K SEGMENT SPACE MANAGEMENT MANUAL;
案例2:
在数据库案例中创建一个大文件表空间(为超大型数据设计的),文件大小为1GB,区的分配采用定制方式
Create bigfile tablespace HRTEST2 datafile
'D:\app\danser\oradata\TablespaceTest01\HRTEST2_1.dbf' size 1G UNIFORM size 512K;
TIP:大文件表空间中段的管理只能采用自动管理方式,而不能采用手动管理方式;
不能通过添加数据文件的方式改变大文件的表空间的大小(可以通过改变数据文件的扩展性和重新设置数据文件的大小方式改变)
案例3:
将HRTEST1表空间设置为案例数据库的默认表空间
[alter database default tablespace HRTEST1 ;]
三、创建临时表空间
案例4:
为案例数据库创建一个临时表空间HRTEMP1
Create temporary tablespace HRTEMP1 tempfile
'D:\app\danser\oradata\TablespaceTest01\HRTEMP1_1.dbf' size 20M EXTENT MANAGEMENT LOCAL UNIFORM size 15M;
TIP:为了避免临时空间频繁分配合回收时产生大量的碎片,临时表空间的段只能采用自动分配方式
案例5:
为案例数据库创建一个临时表空间HRTEMP2,并放进临时表空间组TEMP_GROUP。同时将临时表空间HRTEMP1也放进TEMP_GROUP;
Create temporary tablespace HRTEMP2 tempfile
'D:\app\danser\oradata\TablespaceTest01\HRTEMP2_1.dbf' size 20M EXTENT MANAGEMENT LOCAL UNIFORM size 15M TABLESPACE GROUP TEMP_GROUP;
Alter tablespace HRTEMP1 TABLESPACE GROUP TEMP_GROUP;
案例6:
将HRTEMP1表空间设置为数据库的默认临时表空间
[alter database default temporary tablespace HRTEMP1; ]
四、创建撤销表空间
案例7:
为数据库创建一个撤销表空间HRUNDO1
Create UNDO tablespace HRUNDO1 datafile
'D:\app\danser\oradata\TablespaceTest01\HRUNDO1_1.dbf' size 20M;
TIP:撤销表空间的区只能采用自动分配方式;需要改为自增长模式