Temporary tablespace A temporary tablespace contains transient(临时) data that persists only for the duration of a session. No permanent schema objects can reside(驻留) in a temporary tablespace. The database stores temporary tablespace data in temp files. 临时表空间的作用: 1.用于存放临时数据 临时表: 会话级别:这个数据的生存周期是一个会话 事务级别 : 这个会话的生存周期是一个事物,用于中间数据的存储 2.用于排序 排序是在PGA(sort area区域用于排序)(当空间不足就会使用临时表空间) order by 索引(因为索引是有序的) ******************************************************************************************************* 查看当前的临时表空间? SYS@orcl11g> select tablespace_name,contents from dba_tablespaces where contents='TEMPORARY'; TABLESPACE_NAME CONTENTS ------------------------------ ---------------- TEMP TEMPORARY ******************************************************************************************************** 查看当前的临时文件: --oracle9i后,oracle将临时表空间所对应的临时数据文件与一般的数据文件分开 SYS@orcl11g> col file_name for a50 SYS@orcl11g> select file_id,file_name,tablespace_name,bytes,autoextensible from dba_temp_files; FILE_ID FILE_NAME TABLESPACE_NAME BYTES AUT ---------- ---------------------------------------------------------- --------------------------- ------------- ---- 1 /u01/app/oracle/oradata/orcl11g/temp01.dbf TEMP 30408704 YES 文件编号也是1,这是临时文件的编号,数据文件的编号也有一个1,两者之间各成体系; ********************************************************************************************************* 创建新的临时表空间: SYS@orcl11g> create temporary tablespace temp1 2 tempfile '/u01/app/oracle/oradata/orcl11g/temp1.dbf' 3 size 50m; SYS@orcl11g> create temporary tablespace temp2 2 tempfile '/u01/app/oracle/oradata/orcl11g/temp2.dbf' 3* size 50m; ********************************************************************************************************** 临时表空间 组的概念: SYS@orcl11g> alter tablespace temp1 tablespace group temp_grp; SYS@orcl11g> alter tablespace temp2 tablespace group temp_grp; ********************************************************************************************************** 查看表空间组的信息 SYS@orcl11g> select * from dba_tablespace_groups; GROUP_NAME TABLESPACE_NAME ------------------------------ ------------------------------ TEMP_GRP TEMP1 TEMP_GRP TEMP2 组的创建: 有两种方式: 一种是在创建时指定临时组> CREATE TEMPORARY TABLESPACE tbs_temp_02 TEMPFILE 'temp02.dbf' SIZE 5M AUTOEXTEND ON> TABLESPACE GROUP tbs_grp_01; 二创建完之后再指定 临时表空间的应用: 可以为oracle的每一个用户分配一个临时表空间,这样做较浪费; 可以使用临时表空间组,可减少资源的浪费,做法是将一个临时表空间组(有两个成员),分配给三个人使用; *********************************************************************************************************** 如何查看当前用户使用的临时表空间情况? SYS@orcl11g> select username,default_tablespace,temporary_tablespace 2 from dba_users 3* where username in ('SCOTT','HR') USERNAME DEFAULT_TABLESPACE TEMPORARY_TABLESPACE --------------- ------------------------------- ------------------------------ SCOTT USERS TEMP HR USERS TEMP SYS@orcl11g> select * from database_properties where rownum <4; --永久类型数据库的属性 PROPERTY_NAME PROPERTY_VALUE DESCRIPTION ------------------------------------------------ -------------------------- -------------------------------------------------- DICT.BASE 2 dictionary base tables version # DEFAULT_TEMP_TABLESPACE TEMP Name of default temporary tablespace DEFAULT_PERMANENT_TABLESPACE USERS Name of default permanent tablespace DEFAULT_EDITION ORA$BASE Name of the database default edition 如果你创建了一个用户,没有指定临时表空间,它就使用系统给分配的默认的临时表空间 ************************************************************************************************************************* 修改数据库的默认临时表空间属性: 如果将默认的临时表空间的修改成临时表空间组的话,所有用户使用的临时表空间全都变成临时表空间组了 SYS@orcl11g> alter database default temporary tablespace temp_grp; 修改用户的默认临时表空间: SYS@prod> alter user demo1 temporary tablespace temp_grp; ************************************************************************************************************************* 验证临时表空间组的使用: SYS@orcl11g> create user u1 identified by u1; SYS@orcl11g> create user u2 identified by u2; SYS@orcl11g> select username,default_tablespace,temporary_tablespace from dba_users where username in ('U1','U2'); USERNAME DEFAULT_TABLESPACE TEMPORARY_TABLESPACE ----------------------- ------------------------------ ------------------------------ U1 USERS TEMP_GRP U2 USERS TEMP_GRP SYS@orcl11g> grant connect,resource to u1,u2; SYS@orcl11g> create table u1.obj as select * from dba_objects; SYS@orcl11g> create table u2.obj as select * from dba_objects; SYS@orcl11g> insert into u1.obj select * from u1.obj; ... 将两个表的数据量达到大约40万行,相对于临时表空间50m来说; U1> select * from obj order by 1,2,3,4,5,6,7,8,9,10,11,12,13; U2> select * from obj order by 1,2,3,4,5,6,7,8,9,10,11,12,13; sys> select username,tablespace from v$sort_usage; --如果排序的时候没有使用到临时表空间,那么此视图无数据; ************************************************************************************************************************* 如何退出临时表空间组: SYS@orcl11g> alter database default temporary tablespace temp; SYS@orcl11g> alter tablespace temp1 tablespace group ''; SYS@orcl11g> alter tablespace temp2 tablespace group ''; 所有的组的成员退出组,组消失; 临时表空间的维护: 1.增加临时文件 SYS@orcl11g> alter tablespace temp2 add tempfile '/u01/app/oracle/oradata/orcl11g/temp202.dbf' size 50m; 2.重置文件的size SYS@orcl11g> alter database tempfile '/u01/app/oracle/oradata/orcl11g/temp202.dbf' resize 55m; 3.自动扩展 SYS@orcl11g> alter database tempfile '/u01/app/oracle/oradata/orcl11g/temp202.dbf' autoextend on next 5m maxsize 200m; 4.删除临时文件 SYS@orcl11g> alter tablespace temp2 drop tempfile '/u01/app/oracle/oradata/orcl11g/temp2.dbf'; 5.删除临时表空间 SYS@orcl11g> drop tablespace temp2;
Oracle Temporary tablespace
来源:这里教程网
时间:2026-03-03 15:48:51
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 用的人比较多的自媒体分发软件,这款最安全!
用的人比较多的自媒体分发软件,这款最安全!
26-03-03 - 木鱼小铺:商家如何玩转社区团购小程序
木鱼小铺:商家如何玩转社区团购小程序
26-03-03 - Oracle 没有索引导致的DPR
Oracle 没有索引导致的DPR
26-03-03 - 怎么样批量操作多个易车号?一次性在易车号上发30篇文章
怎么样批量操作多个易车号?一次性在易车号上发30篇文章
26-03-03 - 适合大型企业!自媒体隐藏账号密码第三方应用
适合大型企业!自媒体隐藏账号密码第三方应用
26-03-03 - 一键分发工具哪个最好用?看这个!
一键分发工具哪个最好用?看这个!
26-03-03 - Oracle AWR内容详解
Oracle AWR内容详解
26-03-03 - oracle 11g data guard维护
oracle 11g data guard维护
26-03-03 - 呀!ASM实例起不来可咋整
呀!ASM实例起不来可咋整
26-03-03 - ORACLE for windows 启动之ORA-24324&ORA-01041内部错误hostdef扩展名不存在
