Oracle临时表空间

通过Oracle表空间的讲解,我们了解到表空间是Oracle数据库存储数据和对象的逻辑容器,那临时表空间呢?

Oracle临时表空间主要是存储数据库的排序操作、临时表、中间排序结果等临时对象。例如,我们进行大数量级的排序操作时,当数据库内存不够时,就会写入临时表空间,当操作完成后,临时表空间就会自动清空释放。Oracle经常使用到临时表空间的操作有:create index(创建索引)、group by(分组查询)、order by(排序时)、集合运算时(union、minus、intersect)、多表连接查询时,当数据库内存不足时,会用到临时表空间。


创建临时表空间

Oracle数据库在安装完后就会创建一个默认的临时表空间temp。Oracle创建临时表空间的语法结构和创建持久化表空间一样,只是多了关键字temporary进行创建临时表空间。

创建临时表空间语法:

create temporary  tablespace tempname
tempfile 'filename'
size m;

语法解析:

1、create temporary tablespace:表示创建临时表空间,tempname表示创建临时表空间的名字。

2、filename:指定临时表空间数据文件的位置。

3、size m:表示临时表空间的大小。


案例1、创建临时表空间temp1,代码如下:

create temporary  tablespace temp1
tempfile 'E:\APP\ADMIN\ORADATA\ORCL\temp1.DBF'
size 50m;

创建好临时表空间temp1,我们可以通过数据字典dba_temp_files进行查询临时表空间的信息,查询代码如下:

select t.TABLESPACE_NAME, --表空间名
       t.FILE_NAME, --文件名
       t.AUTOEXTENSIBLE, --是否自动扩展
       t.BYTES / 1024 / 1024 as tsize, --表空间初始大小
       t.MAXBYTES / 1024 / 1024 msize, --表空间最大扩展到多少
       b.CONTENTS, --表空间类型
       b.EXTENT_MANAGEMENT --表空间管理模式
  from dba_temp_files t, dba_tablespaces b
 where t.TABLESPACE_NAME = b.TABLESPACE_NAME

Oracle临时表空间