分类:Oracle10g |
可以将不同的临时表空间组分配给不同的用户,大家互不干扰。
SQL> conn sys/sys@ora10g as sysdba;
已连接。
SQL> select * from dba_tablespace_groups;
未选定行
SQL> select tablespace_name from dba_tablespaces;
TABLESPACE_NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
TEMP
USERS
--创建一个临时表空间,并分配一个临时表空间组,将自动地创建该组
SQL> create temporary tablespace temp1
表空间已创建。
SQL> select * from dba_tablespace_groups;
GROUP_NAME
------------------------------ ------------------------------
GROUP1
SQL> create temporary tablespace temp2
表空间已创建。
SQL> select * from dba_tablespace_groups;
GROUP_NAME
------------------------------ ------------------------------
GROUP1
GROUP2
--也可以把一个存在的临时表空间分配到一个临时表空间组中
SQL> alter tablespace temp tablespace group group2;
表空间已更改。
SQL> select * from dba_tablespace_groups;
GROUP_NAME
------------------------------ ------------------------------
GROUP2
GROUP1
GROUP2
--可以在不同组中移动
SQL> alter tablespace temp tablespace group group1;
表空间已更改。
SQL> select * from dba_tablespace_groups;
GROUP_NAME
------------------------------ ------------------------------
GROUP1
GROUP1
GROUP2
--也可以将临时表空间从组中移出,即不属于任何组
SQL> alter tablespace temp tablespace group '';
表空间已更改。
SQL> select * from dba_tablespace_groups;
GROUP_NAME
------------------------------ ------------------------------
GROUP1
GROUP2
--当删除组中的所有临时表空间时将自动删除该临时表空间组
SQL> drop tablespace temp1 including contents anddatafiles;
表空间已丢弃。
SQL> select * from dba_tablespace_groups;
GROUP_NAME
------------------------------ ------------------------------
GROUP2
--可以将数据库的默认临时表空间指定到一个临时表空间组
SQL> alter database default temporary tablespace group2;
数据库已更改。
--也可以将数据库用户的临时表空间指定到一个临时表空间组
SQL> alter user scott temporary tablespace group2;
用户已更改。
--当临时表空间组中包括多个临时表空间时,同一个用户以不同的SESSION进入数据库进行排序等操作时,ORACLE将为不同的SESSION自动分配不同的临时表空间。
SQL> create temporary tablespace temp1
表空间已创建。
SQL> alter tablespace temp tablespace group group2;
表空间已更改。
SQL> select * from dba_tablespace_groups;
GROUP_NAME
------------------------------ ------------------------------
GROUP2
GROUP1
GROUP2
Session1:
SQL> conn scott/scott@ora10g;
已连接。
select a.table_name, b.table_name
from dict A, dict B
group by a.table_name,b.table_name
order by a.table_name;
Session2:
SQL> conn scott/scott@ora10g;
已连接。
select a.table_name, b.table_name
from dict A, dict B
group by a.table_name,b.table_name
order by a.table_name;
sys:
SQL> select username, session_num, tablespace fromv$sort_usage;
USERNAME
------------------------------ --------------------------------------
SCOTT
SCOTT