一、创建索引表空间:
指令:
create tablespace orcl_index
datafile 'D:\app\Administrator\oradata\orclyg\index\orcl_index.dbf'
size 50M
extent management local
uniform size 1M
设置索引表空间对应的数据文件大小为50M,但是在初始化表空间时表空间大小为1M,随着extent的扩展逐渐增加表空间的大小。
查询表空间信息:
select tablespace_name,block_size,extent_management,segment_space_management from dba_tablespaces;
确定表空间的磁盘管理是基于本地管理的表空间
查看数据文件信息;
select file_id,file_name,tablespace_name from dba_data_files;
二、创建还原表空间:
还原表空间是用来自动管理还原回滚数据的,是用来存储还原段的。在还原表空间中不能包含其他任何对象,还原表空间中的区段是本地管理的,而且在创建还原表空间时
的sql语句中只能使用datafile和extent management子句。
create undo tablespace orcl_undo
datafile 'D:\app\Administrator\oradata\orclyg\undo\orcl_undo.dbf'
size 20M;
除了制定datafile和size外不能再使用任何子句来设置还原表空间的属性
确认创建的表空间是否是还原表空间通过contents字段来查看
select tablespace_name,extent_management,contents from dba_tablespaces;
三、创建临时表空间:
临时表空间是用作排序操作使用的,如果排序的数据量很大,内存的排序区(在PGA内)就可能装不下,oracle服务器就把中间的排序结果写在磁盘上即临时表空间。使用临时表空间可以改进数据库的效率。
临时表空间可以被多个用户共享但是其中不能包含任何永久性对象。临时表空间中的排序段是在instance启动后当有第一个排序操作时创建的。随后按照需要扩展extent。创建临时表空间时必须使用标准数据块
dba_data_files字典中不包含临时表空间对应的的数据文件,所以为了得到临时表空间的数据文件使用v$tablespace,v$tempfile数据字典查看。
select ts.ts#,ts.name as temp_tablespace_name,tf.file#,tf.name as temp_datafile_name from v$tablespace ts,v$tempfile tf
where ts.ts#=tf.ts#
显示临时表空间对应的数据文件
创建临时表空间指令:
create temporary tablespace orcl_temp
tempfile 'D:\app\Administrator\oradata\orclyg\temp\orcl_temp.dbf'
size 10M
extent management local
uniform size 2M
临时表空间的文件总是置为nologging状态,不能使用alter database命令创建临时数据文件,介质恢复时是不能恢复临时数据文件的。
另外为了优化临时表空间排序的效率还应将uniform size置为sort_area_size(PGA中排序区的大小)参数的整数倍。
四、设置默认临时表空间
如果在创建数据库时没有指定默认临时表空间,那么数据库将使用系统表空间system作为临时表空间的排序区,这将使得system表空间碎片化从而降低了数据库系统的效率。并且此时oracle服务器会将把system表空间作为临时表空间的报警信息写入报警文件中。
使用数据字典database_properties可以查看数据库默认临时表空间的设置信息
select * from database_properties where property_name like 'DEFAULT%';
对应到每一个项目要建立该项目所专用的默认临时表空间,当项目结束以后再修改默认临时表空间为temp。
默认临时表空间不能被删除,除非有一个可用的新的默认临时表空间代替。必须使用alter database将一个新的临时表空间设置为默认临时表空间才能删除原来的默认临时表空间。同时原来的默认临时表空间的用户会被自动的赋值到新的默认临时表空间上。默认临时表空间不能被设置为脱机状态。
修改默认临时表空间的指令为:alter database orclyg default temporary tablespace orcl_temp;