版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xuzhenxiang/article/details/46883671 一.TEMP表空间作用 临时表空间主要用途是在数据库进行排序运算、管理索引、访问视图等操作时提供临时的运算空间,当运算完成之后系统会自动清理。当 oracle 里需要用到 sort 的时候, PGA 中 sort_area_size 大小不够时,将会把数据放入临时表空间里进行排序,同时如果有异常情况的话,也会被放入临时表空间 , 正常来说,在完成 Select 语句、create index 等一些使用 TEMP 表空间的排序操作后, Oracle 是会自动释放掉临时段的。注意这里的释放,仅仅是将这些空间标记为空闲,并可重用,真正占用的磁盘空间并没有释放。所以 Temp 表空间可能会越来越大。 排序是很耗资源的, Temp 表空间满了 , 关键是优化你的语句,尽量使排序减少才是上策 . 总结为: 临时表空间的主要作用: 索引create或rebuild; Order by 或 group by; Distinct 操作; Union 或 intersect 或 minus; Sort-merge joins; analyze. 二、oracle temp表空间切换 2.1 查询TEMP表空间使用情况: SELECT temp_used.tablespace_name, total - used AS "Free", total AS "Total", ROUND (NVL (total - used, 0) * 100 / total, 3) "Free percent" FROM ( SELECT tablespace_name, SUM (bytes_used) / 1024 / 1024 used FROM GV$TEMP_SPACE_HEADER GROUP BY tablespace_name) temp_used, ( SELECT tablespace_name, SUM (bytes) / 1024 / 1024 total FROM dba_temp_files GROUP BY tablespace_name) temp_total WHERE temp_used.tablespace_name = temp_total.tablespace_name; 数据库默认表空间: SQL> SELECT PROPERTY_NAME, PROPERTY_VALUE 2 FROM DATABASE_PROPERTIES 3 WHERE PROPERTY_NAME = 'DEFAULT_TEMP_TABLESPACE'; 2.2 新建Temp2表空间 create temporary tablespace temp1 tempfile 'D:\APP\ADMINISTRATOR\ORADATA\SDXJ\TEMP2.dbf' size 20M autoextend on next 1M maxsize unlimited tablespace group '' extent management local uniform size 1M; 2.3 修改数据库默认表空间为Temp1 SQL> alter database default temporary tablespace temp1; 数据库已更改。 2.4 删除原来表空间 退出session,删除原表空间 DROP TABLESPACE TEMP INCLUDING CONTENTS AND DATAFILES; 删除完成。 三、Temp 表空间一些常用查询 3.1、更改系统的默认临时表空间: --查询默认临时表空间 select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE'; --修改默认临时表空间 alter database default temporary tablespace temp1; --所有用户的默认临时表空间都将切换为新的临时表空间: select username,temporary_tablespace,default_ from dba_users; --更改某一用户的临时表空间: alter user scott temporary tablespace temp; 3.2 查找消耗资源比较的sql语句 /* Formatted on 2015/7/14 21:58:17 (QP5 v5.163.1008.3004) */ SELECT se.username, se.sid, su.extents, su.blocks * TO_NUMBER (RTRIM (p.VALUE)) AS Space, tablespace, segtype, sql_text FROM v$sort_usage su, v$parameter p, v$session se, v$sql s WHERE p.name = 'db_block_size' AND su.session_addr = se.saddr AND s.hash_value = su.sqlhash AND s.address = su.sqladdr ORDER BY se.username, se.sid 3.3、查看当前临时表空间使用大小与正在占用临时表空间的sql语句 select sess.SID, segtype, blocks * 8 / 1000 "MB", sql_text from v$sort_usage sort, v$session sess, v$sql sql where sort.SESSION_ADDR = sess.SADDR and sql.ADDRESS = sess.SQL_ADDRESS order by blocks desc; 4.4 对临时表空间进行shrink(11g新增的功能) --将temp表空间收缩为20M alter tablespace temp1 shrink space keep 20M; --自动将表空间的临时文件缩小到最小可能的大小 ALTER TABLESPACE temp1 SHRINK TEMPFILE ’.../temp01.dbf’; 总结: 至此Temp表空间维护完成。 --------------------- 作者:奋斗的小鸟_oracle 来源:CSDN 原文:https://blog.csdn.net/xuliq/article/details/46883671 版权声明:本文为博主原创文章,转载请附上博文链接!
Oracle Temp 表空间切换
来源:这里教程网
时间:2026-03-03 13:14:28
作者:
编辑推荐:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 12C RMAN-本机cdb差异增量备份恢复多个pdb
12C RMAN-本机cdb差异增量备份恢复多个pdb
26-03-03 - Oracle12c 针对单个pdb的全备与恢复
Oracle12c 针对单个pdb的全备与恢复
26-03-03 - oracle 12c 针对cdb的差异0备与对pdb进行恢复
oracle 12c 针对cdb的差异0备与对pdb进行恢复
26-03-03 - 12C针对cdb全备与 PDB执行不完全恢复(基于SCN)
12C针对cdb全备与 PDB执行不完全恢复(基于SCN)
26-03-03 - ORACLE dblink远程DB表truncat导致本地proc执行报错ORA-12012&ORA-06550&PLS-00907
- 12C PDB使用RMAN的4种完全恢复场景
12C PDB使用RMAN的4种完全恢复场景
26-03-03 - Oracle 12c 创建与删除CDB、PDBs
Oracle 12c 创建与删除CDB、PDBs
26-03-03 - 关于多租户架构
关于多租户架构
26-03-03 - oracle数据库备份之exp增量备份
oracle数据库备份之exp增量备份
26-03-03 - 在Oracle DG Standby库上启用flashback database功能
