临时表空间
作用:用于缓存排序的数据(中间结果)
可以建立多个临时表空间,但默认的临时表空间只能有一个且不能offline和drop。temp表空间是nologing的(不记日志)。
SQL> select file_id,file_name,tablespace_name from dba_temp_files;
FILE_ID FILE_NAME TABLESPACE_NAME
---------- -------------------------------------------------- ------------------------------
1 /u01/oradata/prod/temp01.dbf TEMP
SQL> col name for a60;
SQL> select file#,name ,bytes/1024/1024 from v$tempfile;
FILE# NAME BYTES/1024/1024
---------- -------------------------------------------------- ---------------
1 /u01/oradata/prod/temp01.dbf 100
基本操作
1)建立临时表空间temp2。增加或删除tempfile。
SQL> create temporary tablespace temp2 tempfile ‘/u01/oradata/prod/temp02.dbf‘ size 10m;
SQL> alter tablespace temp2 add tempfile ‘/u01/oradata/prod/temp03.dbf‘ size 5m;
SQL> select file_id,file_name,tablespace_name from dba_temp_files;
FILE_ID FILE_NAME TABLESPACE_NAME
---------- -------------------------------------------------------------------------------- -----------------------
1 /u01/oradata/prod/temp01.dbf TEMP
2 /u01/oradata/prod/temp02.dbf TEMP2
3 /u01/oradata/prod/temp03.dbf TEMP2
将temp2里删掉一个tempfile。
SQL> alter tablespace temp2 drop tempfile ‘/u01/oradata/prod/temp03.dbf‘;
SQL> select file_id,file_name,tablespace_name from dba_temp_files;
2) 查看默认的临时表空间
SQL> select * from database_properties where rownum<=5;
3) 指定用户使用临时表空间
SQL> alter user scott temporary tablespace temp2;
4) 切换默认的临时表空间
SQL> alter database default temporary tablespace temp2;
临时表空间组
在很多情况下,会有多个session 使用同一个用户名去访问Oracle,而临时表空间又是基于用户的,那么可以建立一个临时表空间组,
组中由若干临时表空间成员构成,从而可以提高单个用户多个会话使用临时表空间的效率。
1)临时表空间组无法显式创建,组是通过第一个临时表空间分配时自动创建。
SQL> alter tablespace temp1 tablespace group tmpgrp;
SQL> alter tablespace temp2 tablespace group tmpgrp;
SQL> select * from dba_tablespace_groups;
GROUP_NAME TABLESPACE_NAME
------------------------------ ------------------------------
TMPGRP TEMP1
TMPGRP TEMP2
SQL>alter user scott temporary tablespace tmpgrp; ##将用户加入组
SQL>select USERNAME,TEMPORARY_TABLESPACE from dba_users where username=’SCOTT’; ##查看scott是否加入表空间组
2)将临时表空间组设成默认临时表空间,实现负载均衡。
SQL> alter database default temporary tablespace tmpgr;
3)要移除表空间组时,该组不能是缺省的临时表空间。
SQL> alter database default temporary tablespace temp;
SQL> alter tablespace temp1 tablespace group ‘‘;
SQL> alter tablespace temp2 tablespace group ‘‘;
4)当组内所有临时表空间被移除时,组也被自动删除。
SQL> select * from dba_tablespace_groups;
SQL> drop tablespace temp2 including contents and datafiles;
原文:https://www.cnblogs.com/yqp-1/p/12310236.html