临时表空间是一个磁盘空间,主要用于存储用户在执行order by灯语句进行排序或汇总时产生的临时数据。在默认的情况下,所有的用户都使用temp作为默认临时表空间。但是允许使用其他临时表空间作为默认临时表空间,这需要在创建用户时进行指定。
创建临时表空间是时需要使用temprary关键字,并且与临时表空间对应的是临时文件,由tempfile关键字指定,也就是说,临时表空间中不再使用数据文件,而是用临时文件。
如下所示:
SQL> create temporary tablespace mytemp tempfile 'f:\Oracledata\mytemp.dbf' size 5m autoextend on next 2m maxsize 20m;
表空间已创建。
此时在f盘的oracledata的目录下可以找到mytemp.dbf的文件
SQL> select tablespace_name,status from dba_tablespaces;
TABLESPACE_NAME STATUS
------------------------------ ---------
SYSTEM ONLINE
SYSAUX ONLINE
UNDOTBS1 ONLINE
TEMP ONLINE
USERS ONLINE
TEMPGROUP ONLINE
TEMPGROUP02 ONLINE
MYBIGSPACE ONLINE
BLOCKSPACE ONLINE
INSPUR ONLINE
TESTSPACE ONLINE
TEST ONLINE
MYTEMP ONLINE
已选择 12 行。
此时在我们的表空间下可以找到MYTEMP表空间。
修改临时表空间
创建临时表空间后,可以对该表空间进行修改。由于临时文件中不存储永久性的数据,知识存储排序等操作过程中产生的临时数据,并且在用户创建操作结束后,临时文件中存储的数据由系统删除,所以一般的情况下不需要调整临时表空间。但是当兵法用户特别多,并且操作比较复杂时,可能会发生临时表空间的不足。这时,数据管理员可以增加临时文件来增大临时表空间。
如果需要增减临时文件,可以使用add tempfile子句。
如果需要修改临时文件的大小,可以使用resize关键字。
还可以修改临时文件的状态为offline或online。
SQL> select file#,status,name from v$tempfile;
FILE# STATUS NAME
-----------------------------------------------------------------------------------------------
1 ONLINE D:\ORACLE\ORADATA\ORACLE12C\TEMP01.DBF
2 ONLINE D:\ORACLE\ORADATA\ORACLE12C\PDBSEED\PDBSEED_TEMP012015-01-03_05-20-33-PM.DBF
3 ONLINE D:\ORACLE\ORADATA\ORACLE12C\PDBORCL\PDBORCL_TEMP012015-01-03_05-44-35-PM.DBF
4 ONLINE F:\ORACLEDATA\MYTEMP.DBF
6 ONLINE F:\ORACLEDATA\TEMPGROUP01.DBF
7 ONLINE F:\ORACLEDATA\TEMPGROUP02.DBF
已选择 6 行。
SQL> alter tablespace mytemp add tempfile 'f:\oracledata\mytemp2.dbf' size 10m;
表空间已更改。
SQL> select file#,status,name from v$tempfile;
FILE# STATUS NAME
----------------------------------------------------------------------------------------------
1 ONLINE D:\ORACLE\ORADATA\ORACLE12C\TEMP01.DBF
2 ONLINE D:\ORACLE\ORADATA\ORACLE12C\PDBSEED\PDBSEED_TEMP012015-01-03_05-20-33-PM.DBF
3 ONLINE D:\ORACLE\ORADATA\ORACLE12C\PDBORCL\PDBORCL_TEMP012015-01-03_05-44-35-PM.DBF
4 ONLINE F:\ORACLEDATA\MYTEMP.DBF
5 ONLINE F:\ORACLEDATA\MYTEMP2.DBF
6 ONLINE F:\ORACLEDATA\TEMPGROUP01.DBF
7 ONLINE F:\ORACLEDATA\TEMPGROUP02.DBF
如上所示,在f盘的oracledata文件夹下生成了一个mytemp2.dbf文件
以上的文章来自学习中的记录。