一.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 Temp 表空间切换的更多相关文章

  1. Oracle Temp表空间切换

    来源于:  http://www.2cto.com/database/201507/418564.html 一.TEMP表空间作用 临时表空间主要用途是在数据库进行排序运算.管理索引.访问视图等操作时 ...

  2. Oracle 临时表空间 temp表空间切换

    一.TEMP表空间 临时表空间主要用途是在数据库进行排序运算.管理索引.访问视图等操作时提供临时的运算空间,当运算完成之后系统会自动清理.当oracle里需要用到sort的时候,PGA中sort_ar ...

  3. oracle暂时表空间 ORA-01652:无法通过16(在表空间XXX中)扩展 temp 字段

    今天在查数据的时候报错  ORA-01652:无法通过16(在表空间temp1中)扩展 temp 字段 查看表空间使用明细 SELECT b.tablespace,        b.segfile# ...

  4. Oracle大表改为分区表及表空间切换方案

    Oracle大表改为分区表及表空间切换方案 一.            背景 由于之前数据库表和索引放在一个表空间导致表空间数据文件增长太快,文件数量即将达到Oracle表空间的限制,需要对表(没有分 ...

  5. oracle维护表空间和数据文件

    1:重要参考 wiki 2: oracle doc 表空间参考 3:来自dba-oracle的参考 26,27,28,29 一:oracle 表空间概念 表空间是联系数据库的物理磁盘(数据文件)和逻辑 ...

  6. 直接删除undo及temp表空间文件后的数据库恢复一例

    前几天,某用户研发找到我,说他们的研发库坏了,问我能恢复不?我问他们做了什么操作,一个小男孩儿说,看到空间满了,清除了点儿数据,我说是不是连数据库的文件也清除了,他说没有,他清除的是ORACLE_HO ...

  7. 解决ora-01652无法通过128(在temp表空间中)扩展temp段的过程

    解决ora-01652无法通过128(在temp表空间中)扩展temp段的过程 昨天开发人员跟我说,执行一个sql语句后,大约花了10分钟,好不容易有一个结果,但是报了一个ora-01652错误,查阅 ...

  8. Oracle创建表空间、用户管理、角色管理

    内容:Oracle创建表空间.用户管理.角色管理 1.用系统用户登录Oracle 默认的系统用户: sys/system.sysman.scott sys:权限最大,超级用户,可以完成所有任务, 默认 ...

  9. Oracle重建表空间操作实例

    由于环境维护或者性能测试需要,经常需要对表空间进行重建操作.重建表空间操作主要分3中情况介绍,分别是业务表空间.临时表空间和回滚段表空间的重建. 重建业务表空间 由于业务规划要求,重建后的业务表空间名 ...

随机推荐

  1. Selenium示例集锦--常见元素识别方法、下拉框、文本域及富文本框、鼠标操作、一组元素定位、弹窗、多窗口处理、JS、frame、文件上传和下载

    元素定位及其他操作 0.常见的识别元素的方法是什么? driver.find_element_by_id() driver.find_element_by_name() driver.find_ele ...

  2. [算法天天练] - C语言实现双向链表(一)

    双向链表是比较常见的,主要是在链表的基础上添加prev指针,闲话少说直接上代码吧(这个也是网上一个大神的思路,真心不错,条理清楚,逻辑缜密) 主要也是为了学习,贴上我所调试成功的代码(Linux环境下 ...

  3. 阿里云机器学习tensorflow实践

    1,前言 伴随人工智能和深度学习的应用越来越普及,越来越多的开发人员开始投入到智能算法的编程中.由于算法成熟且公开,软件编码这一块不存在难度:但模型训练和预测所需的时间与硬件设备的配置有极大关系,很多 ...

  4. vuex的各个细节理解(因人而异)

    应用级的状态集中放在store中: 改变状态的方式是提交mutations,这是个同步的事物: 异步逻辑应该封装在action中. const vuex_store = new Vuex.store( ...

  5. 平凡的世界小说txt下载完整版

    <平凡的世界>正白纸黑字的告诉我们这样的人生真谛.它响亮的提出,人,无论在什么位置,无论多么贫寒,只要一颗火热的心在,只要能热爱生活,上帝对他就是平等的.只有作一名劳动者,不把不幸当作负担 ...

  6. (转)淘淘商城系列——使用Jedis操作集群

    http://blog.csdn.net/yerenyuan_pku/article/details/72862084 通过上文的学习,我相信大家应该已经知道如何搭建Redis集群了,本文我将为大家介 ...

  7. POJ_1163_The triangle

    The Triangle Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 40079   Accepted: 24144 De ...

  8. iOS,Core Animation--负责视图的复合功能

    简介 UIKit API UIKit是一组Objective-C API,为线条图形.Quartz图像和颜色操作提供Objective-C 封装,并提供2D绘制.图像处理及用户接口级别的动画.    ...

  9. xmpp获取好友信息和添加删除好友(4)

    原始地址: XMPPFrameWork IOS 开发(五)获取好友信息和添加删除好友 好友列表和好友名片 [_xmppRoster fetchRoster];//获取好友列表 //获取到一个好友节点 ...

  10. 洛谷——P3173 [HAOI2009]巧克力

    P3173 [HAOI2009]巧克力 题目描述 有一块n*m的矩形巧克力,准备将它切成n*m块.巧克力上共有n-1条横线和m-1条竖线,你每次可以沿着其中的一条横线或竖线将巧克力切开,无论切割的长短 ...