一、临时表空间的作用
Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中间结果进行排序,下面的操作都会
使用大量的temporary段 :
索引create或rebuild;
Order by 或 group by;
Distinct 操作;
Union 或 intersect 或 minus;
Sort-merge joins;
IMP/EXP操作;
二、临时表空间建多大合适,个人建议
1.一般的业务系统频繁使用临时段的需要单独创建临时表空间
2.临时表空间的太大或太小都会影响数据库性能,一般建议根据业务系统一天产生的大小作为初始大小。
3.临时表空间需要定期维护
三、oracle11g 临时表空间收缩(只针对oracle11g以后版本)
- 常用查询临时表空间视图
1 | select * from v$datafile //查询数据文件 |
- 临时表空间收缩
收缩临时表空间:
1 | alter tablespace USER_TEMP_TBS shrink space keep 200M; |
收缩临时文件:
1 | ALTER TABLESPACE USER_TEMP_TBS SHRINK TEMPFILE '/opt/oracle/oradata/user_temp_tbs01.dbf' keep 200M; |
以上操作已经在测试环境中验证过,可以立即收缩空间,对数据库无太大影响,如果是生产库建议晚上做以上操作,否则会出现等待事件。