- TEMP表空间的作用
临时表空间主要用途是在数据库进行排序运算、管理索引、访问视图等操作时提供临时的运算空间,当运算完成之后系统会自动清理。当 oracle 里需要用到 sort 的时候, PGA 中 sort_area_size 大小不够时,将会把数据放入临时表空间里进行排序,同时如果有异常情况的话,也会被放入临时表空间 , 正常来说,在完成 Select 语句、create index 等一些使用 TEMP 表空间的排序操作后, Oracle 是会自动释放掉临时段的。注意这里的释放,仅仅是将这些空间标记为空闲,并可重用,真正占用的磁盘空间并没有释放。所以 Temp 表空间可能会越来越大。
临时表空间的主要作用:
索引create或rebuild;
Order by 或 group by;
Distinct 操作;
Union 或 intersect 或 minus;
Sort-merge joins;
analyze. - TEMP表空间的切换:
1)查看数据库默认表空间:
select * from database_properties where property_name = ‘DEFAULT_TEMP_TABLESPACE’;
2)查看临时表数据文件信息:
select file_id,file_name,tablespace_name,bytes,maxbytes,autoextensible,increment_by from dba_temp_files;
包含文件ID,数据文件名称,表空间名称,数据文件大小,数据文件最大值,是否自动扩展,每次扩展数据块数量。
3)创建新的临时表空间
create temporary tablespace TEMP1 tempfile ‘E:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\ORCL\DATAFILE\temp01.dbf’ size 20M autoextend on next 1M maxsize unlimited;
4)修改临时表空间为TEMP1.
alter database default temporary tablespace TEMP1;
5)删除原有的临时表空间TEMP及相关数据文件。
drop tablespace TEMP including contents and datafiles;
oracle数据库临时表空间进行切换。
查看临时表空间已经满了,需要增加临时表空间数据文件,则进行如下操作。
alter database tempfile ‘E:\APP\ADMINISTRATOR\VIRTUAL\ORADATA\ORCL\DATAFILE\temp02.dbf’ size 20M autoextend on next 1M maxsize unlimited;