Oracle 10g 引进了临时表空间组(temporary tablespace group)的概念,它允许用户在不同的会话中同时利用多个临时表空间。
1. 临时表空间组的主要特征
n 一个临时表空间组必须由至少一个临时表空间组成,并且无明确的最大数量限制。
n 如果删除了一个临时表空间组的所有成员,该组也自动被删除。
n 临时表空间的名字不能与临时表空间组的名字相同。
n 在给用户分配一个临时表空间时,可以使用临时表空间组的名字代替实际的临时表空间名;在给数据库分配默认临时表空间时也可以使用临时表空间组的名字。
2. 临时表空间组的有点
使用临时表空间组而非普通的临时表空间,有如下好处:
n 由于SQL查询可以并发使用几个临时表空间进行排序操作,因此SQL查询很少会出现排序空间超出,避免当临时表空间不足时所引起的磁盘排序问题。
n 可以在数据库级指定多个默认临时表空间。
n 一个并行操作的并行服务器将有效地利用多个临时表空间。
n 一个用户在不同会话中可以同时使用多个临时表空间。
3. 管理临时表空间组
临时表空间组是在创建临时表空间时通过指定GROUP字句创建的。可以将一个表空间从一个组移动另一个组,或是从一个组中删除临时表空间,或是往组里添加新的表空间。
1). 创建临时表空间组
创建临时表空间时指定GROUP:
CREATE SMALLFILE TEMPORARY TABLESPACE "TEMP01" TEMPFILE '/u01/app/oracle/oradata/orcl/temp_tbs_01a.dbf' SIZE 5M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL UNIFORM. SIZE 1M TABLESPACE GROUP TBS_GROUP_1 GO CREATE SMALLFILE TEMPORARY TABLESPACE "TEMP02" TEMPFILE '/u01/app/oracle/oradata/orcl/temp_tbs_02a.dbf' SIZE 5M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL UNIFORM. SIZE 1M TABLESPACE GROUP TBS_GROUP_1 GO CREATE SMALLFILE TEMPORARY TABLESPACE "TEMP03" TEMPFILE '/u01/app/oracle/oradata/orcl/temp_tbs_03a.dbf' SIZE 5M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL UNIFORM. SIZE 1M TABLESPACE GROUP TBS_GROUP_2 GO CREATE SMALLFILE TEMPORARY TABLESPACE "TEMP04" TEMPFILE '/u01/app/oracle/oradata/orcl/temp_tbs_04a.dbf' SIZE 5M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL UNIFORM. SIZE 1M TABLESPACE GROUP TBS_GROUP_2 GO |
2)、修改数据库默认临时表空间
alter database default temporary tablespace TBS_GROUP_1;
3)、临时表空间组无法显式创建,当第一个临时表空间分配给该组时自动创建,当组内所有临时表空间被移除时自动删除
注意:从Oracle10gR2开始,使用RMAN恢复数据库之后,Oracle会自动重新创建临时文档,由于临时文档是Sparse File,所以创建会很迅速,通常您不会感觉得到。