ORACLE 临时表空间

首先我们要明确下哪些情况下的操作会使用到临时表空间:

  • 排序操作 比如select或dml(ddl)语句中包含order by之类;
  • create index
  • create pk constraint (其实这个跟create index类似,因为创建主键约束时默认会同时创建index)
  • enable constraint操作
  • create table语句

temp表空间的作用,temp表空间主要是用作需要排序的操作。
1.临时表空间 是用于在进行排序操作(如大型查询,创建索引和联合查询期间存储临时数据)每个用户都有一个临时表空间。
2.对于大型操作频繁,(大型查询,大型分类查询,大型统计分析等),应指定单独的临时表空间,以方便管理。
3.分配用户单独临时表空间,一般是针对 大型产品数据库,OLTP数据库,数据库仓库对于小型产品不需要单独制定临时表空间,使用默认临时表空间。
正常情况下,一个sql执行之后,返回结果后系统会自动收回分配给这个用户的空间。以便可以把此部分空间再分配给其他用户。

(查询用户需要具备dba权限)
临时表空间信息:

 select * from dba_tablespaces where tablespace_name = 'TEMP';

--自动扩展字段autoextendsible(yes/no)
select * from dba_temp_files;

select * from v$tempfile ;

需要说明的是:
1、sql语句完成之后,需要检查记录的准确性。
2、尽量不要在视图中进行order by ,这是一个非常耗费资源的操作。

你可能感兴趣的:(ORACLE 临时表空间)