oracle体系-15.2-临时表空间

临时表空间

作用:用于缓存排序的数据(中间结果)

可以建立多个临时表空间,但默认的临时表空间只能有一个且不能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;

猜你喜欢

转载自www.cnblogs.com/yqp-1/p/12310236.html
今日推荐