Oracle 原理:临时表空间的操作方式

临时表空间用于存放用户的临时数据,允许被覆盖,关闭数据库后,临时表空间的数据会自动删除。在专有连接模式下,一个用户进程对应的一个服务器进程。临时表空间在硬盘中,SQL查询取出来的数据放在在PGA(程序全局区)中也是服务器内存中。例如在用户执行SQL进行排序时会用临时表空间进行排序。例如SQL语句: select * from a.b order by a.col1 ,b.col2 desc.

Oracle 会把查询出来的数据再PGA中进行排序,如果数据太多,服务器内存不足以支持排序,会把查询出来的数据分成多份,每份放到临时表空间中进行排序。所以如果PGA太小或者数据太大,可能会导致与外盘的交互变多从而导致效率下降

临时表空间组是有一个或者多个临时表空间组成的。临时表空间不能显式的新建或者删除。

查询表空间select * from dba_tablespaces. 。 只要字段  CONTENTS的值是TEMPORARY 就是临时表空间

查询所有数据文件: select * from dba_data_files;   可以查询到表空间存放的位置,临时表除外。

查询临时表数据文件: select * from dba_temp_files;

查询临时表空间组:select * from dba_tablespace_groups;;

查询默认临时表空间: select * from database_properties where PROPERTY_NAME='DEFAULT_TEMP_TABLESPACE';

创建临时表空间:

create temporary tablespace temp2 tempfile 
'D:\ORACLE\ORADATA\ORCL\TEMP2_01.dbf' size 10m autoextend on
tablespace group temp_grp;

表空间更改组: alter tablespace <tablename> tablespace group <groupname>..   --当 groupname :='' 时为移除组.

给临时表空间分配临时文件: alter tablespace <spacename> add tempfile '<路径/文件名.dbf>' size  [100m] autoextend on ;

修改默认临时表空间:
alter database default temporary tablespace [groupname or spacename]

猜你喜欢

转载自blog.csdn.net/superSmart_Dong/article/details/107347110
今日推荐