oracle11g中的临时表空间

临时表空间:用来存放用户的临时性数据,在需要时覆盖,关闭时自动删除,不能存放 永久性数据。临时表空间在硬盘中。


1、临时表空间概念介绍 和 举例介绍

   临时表空间用来管理数据库排序操作以及用于存储临时表、中间排序结果等临时对象,当ORACLE里需要用到SORT的时候,并且当PGA中sort_area_size大小不够时,将会把数据放入临时表空间里进行排序。像数据库中一些操作: CREATE INDEX、 ANALYZE、SELECT DISTINCT、ORDER BY、GROUP BY、 UNION ALL、 INTERSECT、MINUS、SORT-MERGE JOINS、HASH JOIN等都可能会用到临时表空间。当操作完成后,系统会自动清理临时表空间中的临时对象,自动释放临时段。这里的释放只是标记为空闲、可以重用,其实实质占用的磁盘空间并没有真正释放。这也是临时表空间有时会不断增大的原因。

  • 例如:(大数据量的排序)当用户对很多数据行进行排序时,排序在PGA中进行。但是如果排序的数据过多,导致内存不足时,oracle会把要排序的数据分成多份,每次只取一份放在PGA中进行排序,其他的部分都放到临时表空间中,当PGA里的部分排序完成后,把排序好的部分交换到临时表空间中,同时再从临时表空间里取一份没有排序的数据到PGA中进行排序,这样直到所有数据排序完成为止。

临时表空间与临时表空间组 ?

临时表空间组是一组由临时表空间组成的组:
①临时表空间与临时表空间组不能同名。
②临时表空间组不能被显示 的创建和删除。
③创建:当我们把第一个临时表空间分配给一个临时表空间组时,oracle会自动创建这个临时表空间组。
④删除:将临时表空间组的最后一个临时表空间删除,就会删除这个临时表空间组。


表空间相关视图和语句、

用法 语句
查看数据库中有哪些表空间 select * from v$tablespace;
同上述作用,查询的信息更多 select * from dba_tablespaces;
查看所有的数据文件(除临时文件) select * from dba_data_files;
查看临时文件,临时表空间所对应的文件 select * from dba_temp_files;
查看临时文件信息 select * from v$tempfile;
查看临时表空间组 select * from dba_tablespace_groups;
查看默认的临时表空间 select property_name, property_value from database_properties where property_name = ‘DEFAULT_TEMP_TABLESPACE’;

 


临时表空间的创建:
创建一个临时表空间 ,不属于组:
create temporary tablespace temp_name 
            tempfile 路径+文件名 size 大小 [autoextend on] ;
            --size单位m兆 autoextend on 自动增长
create temporary tablespace  temp2    
          tempfile D:\app\Administrator\oradata\orcl\temp2a.dbf    
             size 10m autoextend on ;

创建一个临时表空间属于组:
create temporary tablespace temp_name tempfile 路径+文件名 
            size 大小 [autoextend on]  tablespace group  group_name ;

create temporary tablespace temp3     
     tempfile    D:\app\Administrator\oradata\orcl\temp3a.dbf     
     size 10m autoextend on tablespace group  temp_grp;

有关临时表空间的相关操作:

将临时表空间temp2加入到临时表空间组temp_grp中:

 alter tablespace temp2 tablespace group temp_grp;

将临时表空间temp2从临时表空间组temp_grp中移除:

 alter tablespace temp2 tablespace group ‘‘  ;  --组名置空

给temp表空间添加一个临时文件temp3aa.dbf :

alter  tablespace  temp2 
  add tempfile D:\app\Administrator\oradata\orcl\temp3aa.dbf      
   size 10m autoextend on  ;

修改系统默认的临时表空间:
①将默认临时表空间改成临时表空间组 temp_grp (可包含多个临时表空间):

alter database default  temporary tablespace  temp_grp;

②将默认临时表空间改成临时表空间temp2:

alter database default  temporary tablespace  temp_grp;

 

oracle11g中的临时表空间

上一篇:MySQL的小工具 orzdba


下一篇:MySQL教程58-IN和NOT IN用法详解