Oracle9i为我们提供了一个全局的临时表空间。有的时候我们会发现在做了大量的排序操作后,temp表空间并没有去释放,而且在更大的程度上面占用了我们的磁盘空间,其实我们可以通过重建或者切换的手段来使我们的temp表空间得到重生。
首先我们可以先看一下,当前用户所属的临时表空间有那些
SQL> select username ,temporary_tablespace from dba_users;
USERNAME TEMPORARY_TABLESPACE
------------------------------ ------------------------------
SYS TEMP1
SYSTEM TEMP1
DBSNMP TEMP1
HUJINPEI TEMP1
ALAN1 TEMP1
PERFUSER TEMP1
ALAN2 TEMP1
MYUSER TEMP1
OUTLN TEMP1
WMSYS TEMP1
已选择10行。
查看当前有那些临时文件
SQL> select name from v$tempfile;
NAME
--------------------------------------------------------------------------------
D:\ORACLE\ORADATA\ICMNLSDB\TEMP1_01.DBF
D:\ORACLE\ORADATA\ICMNLSDB\TEMP1_02.DBF
为了切换这个临时文件,我们可以重新建立一个临时表空间
SQL> create temporary tablespace temp
2 tempfile 'D:\ORACLE\ORADATA\ICMNLSDB\TEMP01.DBF' size 10M ;
表空间已创建。
SQL> alter tablespace temp add tempfile 'D:\ORACLE\ORADATA\ICMNLSDB\TEMP02.DBF' size 10M;
表空间已更改。
这个时候我们就可以将刚刚建好的TEMP表空间设置为我们数据库默认的临时表空间:
SQL> alter database default temporary tablespace temp;
数据库已更改。
SQL> select username,temporary_tablespace from dba_users;
USERNAME TEMPORARY_TABLESPACE
------------------------------ ---------------------------
SYS TEMP
SYSTEM TEMP
DBSNMP TEMP
HUJINPEI TEMP
ALAN1 TEMP
PERFUSER TEMP
ALAN2 TEMP
MYUSER TEMP
OUTLN TEMP
WMSYS TEMP
已选择10行。
当然我们还可以选择DROP掉以前旧的TEMP1的表空间
SQL> drop tablespace temp1 including contents ;
表空间已丢弃。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12361284/viewspace-958/,如需转载,请注明出处,否则将追究法律责任。