临时表空间组的使用

一个临时表空间组至少包含一个临时表空间。

临时表空间组无法显式创建,当第一个临时表空间分配给该组时自动创建,当组内所有临时表空间被移除时自动删除。

临时表空间组支持的操作:
可以将临时表空间从一个组移动到另外一个组(如果组不存在,则自动创建)。
可以将组中的临时表空间从组中移除。
可以将目前不属于任何组的临时表空间加入一个组。

使用临时表空间组的好处:
防止一个临时表空间出现空间不足的问题。
同一个用户同时连接多个session时可以使用不同的临时表空间。
在并行操作中可以并行使用多个临时表空间。

一 创建临时表空间

SQL> create temporary tablespace temp01
  2  tempfile 'd:\oracle\oradata\orcl\temp101.dbf' size 10m
  3  tablespace group tmpgrp1;

表空间已创建。

SQL> create temporary tablespace temp02
  2  tempfile 'd:\oracle\oradata\orcl\temp201.dbf' size 10m
  3  tablespace group tmpgrp2;

表空间已创建。

二  查看临时表空间。

SQL> select * from dba_tablespace_groups;

GROUP_NAME                     TABLESPACE_NAME                                 
------------------------------ ------------------------------                  
TMPGRP1                        TEMP01                                          
TMPGRP2                        TEMP02      

 

三 将临时表空间从临时表空间组中移出                                     

SQL> alter tablespace temp02 tablespace group '';

表空间已更改。

SQL> select * from dba_tablespace_groups;

GROUP_NAME                     TABLESPACE_NAME                                 
------------------------------ ------------------------------                  
TMPGRP1                        TEMP01                         

 

四  将表空间移入新的表空间组。                 

SQL> alter tablespace temp02 tablespace group tmpgrp1;

表空间已更改。

SQL> select * from dba_tablespace_groups;

GROUP_NAME                     TABLESPACE_NAME                                 
------------------------------ ------------------------------                  
TMPGRP1                        TEMP01                                          
TMPGRP1                        TEMP02                                          

SQL>
SQL> create temporary tablespace temp03
  2  tempfile 'd:\oracle\oradata\orcl\temp301.dbf' size 10m
  3  tablespace group tmpgrp3;

表空间已创建。

SQL> select * from dba_tablespace_groups;

GROUP_NAME                     TABLESPACE_NAME                                 
------------------------------ ------------------------------                  
TMPGRP1                        TEMP01                                          
TMPGRP1                        TEMP02                                          
TMPGRP3                        TEMP03    

            

五 临时表空间组的名字不能和表空间的名字冲突                          

SQL> create temporary tablespace temp04
  2  tempfile 'd:\oracle\oradata\orcl\temp401.dbf' size 10m
  3  tablespace group temp01;
create temporary tablespace temp04
*
第 1 行出现错误:
ORA-01543: 表空间 'TEMP01' 已存在

 

SQL> select * from dba_tablespace_groups;

GROUP_NAME                     TABLESPACE_NAME                                 
------------------------------ ------------------------------                  
TMPGRP1                        TEMP01                                          
TMPGRP1                        TEMP02                                          
TMPGRP3                        TEMP03                                          

 

六  删除临时表空间组中的所有表空间后,临时表空间组将被自动删除。

SQL> drop tablespace temp01 including contents and datafiles;

表空间已删除。

SQL> select * from dba_tablespace_groups;

GROUP_NAME                     TABLESPACE_NAME                                 
------------------------------ ------------------------------                  
TMPGRP1                        TEMP02                                          
TMPGRP3                        TEMP03                             

时间: 2024-10-03 10:08:34

临时表空间组的使用的相关文章

Oracle 10g的临时表空间组操作

Oracle 10g 引进了临时表空间组(temporary tablespace group)的概念,它允许用户在不同的会话中 同时利用多个临时表空间. 1. 临时表空间组的主要特征 一个临时表空间组必须由至少一个临时表空间组成,并且无明确的最大数量限制. 如果删除了一个临时表空间组的所有成员,该组也自动被删除. 临时表空间的名字不能与临时表空间组的名字相同. 在给用户分配一个临时表空间时,可以使用临时表空间组的名字代替实际的临时表空间名;在给数据库 分配默认临时表空间时也可以使用临时表空间组

oracle 临时表空间组的概念

整理自:http://blog.sina.com.cn/s/blog_40c09b550100ifi6.html 在oracle10g以前,每个用户只能使用一个临时表空间,就是其默认临时表空间.oracle10g及其以后版本提供了新的临时表空间组的功能,允许将多个临时表空间打包成一个组,然后指定用户的默认临时表空间为该临时表空间组,从而达到一个用户可以使用多个临时表空间的目的.   一个临时表空间组至少包含一个临时表空间.临时表空间组无法显式创建,当第一个临时表空间分配给该组时自动创建,当组内所

ORACLE临时表空间总结

临时表空间概念   临 时表空间用来管理数据库排序操作以及用于存储临时表.中间排序结果等临时对象,当ORACLE里需要用到SORT的时候,并且当PGA中 sort_area_size大小不够时,将会把数据放入临时表空间里进行排序.像数据库中一些操作: CREATE INDEX. ANALYZE.SELECT DISTINCT.ORDER BY.GROUP BY. UNION ALL. INTERSECT.MINUS.SORT-MERGE JOINS.HASH JOIN等都可能会用到临时表空间.当

临时表空间损坏的修复

最近测试环境需要把一些现有的存储空间匀出一部分来给新增的环境使用. unix组的人很快就空间按照指定的比例重新切分好了.环境交给我的时候,我先把数据库起来,没有任何问题,因为需要到处一个创建用户的语句,就简单执行了一个查询. select dbms_metadata.get_ddl('USER',u.username) from dba_users u WHERE USERNAME in('TEST'); 但是让我意外的,报了如下的错误. SQL> select dbms_metadata.ge

Oracle临时表空间

当 Oracle 在执行一些 SQL 时,会需要一些临时空间来存储执行时产生的中间数据.这些临时空 间由 Orac le 从指定的临时表空间中分配给进程.主要有三种情况会占用临时空间:临时表/索引操作.排序和 临时 LO B 对象操作. A.临时表/索引: 在会话中,当第一次对临时表进行 INSERT(包括 CTAS)时 ,Orac le 会从临时表空间中为临时 表 及其索引分配临时空间一存储数据. B.排序: 任何会使用到排序的操作,包括 JOIN.创建(重建)INDEX.ORDER  BY.

ORACLE 临时表空间TEMP 满了怎么办?

oracle|临时表         最近遇到这样一个问题:前一段时间网页查询ORACLE表正常,可最近一直页面无法显示.打印出SQL放到PL/SQL Devoloper 执行,报"无法通过8(在表空间XXX中)扩展 temp 段",还有一个页面,可以查询出记录,但无法统计数据!       经过分析产生原因可能是:ORACLE临时段表空间不足,因为ORACLE总是尽量分配连续空间,一但没有足够的可分配空间或者分配不连续就会出现上述的现象.  解决方法:知道由于ORACLE将表空间作为

不要让临时表空间影响Oracle数据库性能

在Oracle数据库中进行排序.分组汇总.索引等到作时,会产生很多的临时数据.如有一张员工信息表,数据库中是安装记录建立的时间来保存的.如果用户查询时,使用Order BY排序语句指定按员工编号来排序,那么排序后产生的所有记录就是临时数据.对于这些临时数据,Oracle数据库是如何处理的呢? 通常情况下,Oracle数据库会先将这些临时数据存放到内存的PGA(程序全局区)内.在这个程序全局区中有一个叫做排序区的地方,专门用来存放这些因为排序操作而产生的临时数据.但是这个分区的容量是有限的.当这个

Oracle 临时表空间使用注意

oracle|临时表 临时表空间使用注意:1.临时表空间 是用于在进行排序操作(如大型查询,创建索引和联合查询期间存储临时数据)每个用户都有一个临时表空间2.对于大型操作频繁,(大型查询,大型分类查询,大型统计分析等),应指定单独的临时表空间,以方便管理 3.分配用户单独临时表空间,一般是针对 大型产品数据库,OLTP数据库,数据库仓库对于小型产品不需要单独制定临时表空间,使用默认临时表空间

如何重做Oracle临时表空间

应用场景:临时表空间满了,无法释放 解决方法总结如下: --1 创建中转临时表空间 create temporary tablespace temp02 tempfile '/oradata/CRPT_TEMP_TRA.dbf' size 20G reuse autoextend on next 1M ; --2 修改用户临时表空间为中转临时表空间 alter user crmreport temporary tablespace temp02 --3 删除用户原始的临时表空间 TBS_CRPT