作者:iamlaosong

Oracle暂时表空间主要用来做查询和存放一些缓冲区数据。

暂时表空间消耗的主要原因是须要对查询的中间结果进行排序。暂时表空间的主要作用:

索引create或rebuild

Order by 或 group by

Distinct 操作

Union 或 intersect 或 minus

Sort-merge joins

analyze


重新启动数据库能够释放暂时表空间。假设不能重新启动实例,而一直保持问题sql语句的运行,temp表空间会一直增长。即使重建了暂时表空间,过一段时间后,暂时表空间的使用率就达到99%。然后,表空间就開始增长,直到耗尽硬盘空间。

例如以下图所看到的暂时表空间,刚建立时是8G,如今已到32G:

为了防止暂时表空间无限制的添加。我採用隔一段时间就重建暂时表空间的方法,为了方便,我保留两组语句,轮流运行就可以。假定如今暂时表空间名称是temp,新建一个tempa表空间。删除temp表空间,方法例如以下:

create   temporary   tablespace   TEMPA   TEMPFILE   '/opt/app/oracle/oradata/orcl/tempa01.dbf '   SIZE   8192M   REUSE   AUTOEXTEND   ON   NEXT  1024K   MAXSIZE   UNLIMITED;   --创建中转暂时表空间 

alter   database   default   temporary   tablespace   tempa;      --改变缺省暂时表空间

drop   tablespace   temp   including   contents   and   datafiles;     --删除原来暂时表空间

新建的暂时表空间例如以下图所看到的:

过一段时间,当暂时表空间增长到一定的程度,再新建一个temp表空间,删除tempa表空间,即:

create   temporary   tablespace   TEMP   TEMPFILE   '/opt/app/oracle/oradata/orcl/temp01.dbf '   SIZE   8192M   REUSE   AUTOEXTEND   ON   NEXT  1024K   MAXSIZE   UNLIMITED;   --创建中转暂时表空间 

alter   database   default   temporary   tablespace   temp;    --改变缺省暂时表空间

drop   tablespace   tempa   including   contents   and   datafiles;  --删除原来暂时表空间

这样就能够保证暂时表空间不至于过大。防止过多的占用有限的硬盘空间。

=====================================================

用以下语句可查看当前暂时表空间使用空间大小与正在占用暂时表空间的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;

以下语句查询暂时表空间的空暇程度:

select 'the ' || name || ' temp tablespaces ' || tablespace_name ||

       ' idle ' ||

       round(100 - (s.tot_used_blocks / s.total_blocks) * 100, 3) ||

       '% at ' || to_char(sysdate, 'yyyymmddhh24miss')

  from (select d.tablespace_name tablespace_name,

               nvl(sum(used_blocks), 0) tot_used_blocks,

               sum(blocks) total_blocks

          from v$sort_segment v, dba_temp_files d

         where d.tablespace_name = v.tablespace_name(+)

         group by d.tablespace_name) s,

       v$database;

Oracle中暂时表空间的清理的更多相关文章

  1. oracle中的表空间(tablespace)、方案(schema)、段(segment)、区(extent)、块(block)

    数据文件和日志文件是数据库中最重要的文件.它们是数据存储的地方.每个数据库至少有一个与之相关的数据文件,通常情况下不只一个,有很多.数据在数据文件中是如何组织的?要了解这些内容我们首先必须理解什么是表 ...

  2. Oracle中的表空间

    表空间是什么? Oracle数据库包含逻辑结构和物理结构. 数据库的物理结构是指构成数据库的一组操作系统文件. 数据库的逻辑结构是指描述数据组织方式的一组逻辑概念及它们之间的关系. 表空间是数据库数据 ...

  3. Oracle中undo表空间的切换

    查看操作系统: SQL>  !cat /etc/redhat-releaseRed Hat Enterprise Linux Server release 7.4 (Maipo)查看数据库版本: ...

  4. oracle中的表空间以及和表空间有关的操作

    oracle中表空间 表空间是oracle对物理数据库上相关数据文件的逻辑映射.一个数据库逻辑上被划分成一个或若干个表空间,每个表空间包含了在逻辑上相关联的一组结构.每个数据库至少有一个表空间(sys ...

  5. 如何在Oracle中建立表和表空间?

    1.建表空间 ORACLE中,表空间是数据管理的基本方法,所有用户的对象要存放在表空间中,也就是用户有空间的使用权,才能创建用户对象.否则是不充许创建对象,因为就是想创建对象,如表,索引等,也没有地方 ...

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

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

  7. oracle表空间查询维护命令大全之三(暂时表空间)史上最全

    --UNDO表空间汇总 --查看全部的表空间名字 SELECT NAME FROM V$TABLESPACE; --创建新的UNDO表空间,并设置自己主动扩展參数; CREATE UNDO TABLE ...

  8. Oracle 数据库中查看表空间的2种方法

    在Oracle数据库中查看表空间使用状况是我们在实际应用中经常涉及到的,以下的内容就就是对Oracle 数据库中查看表空间使用状况时所要用到的SQL的描述,希望你能从中获得自己想要的东西. Oracl ...

  9. ORACLE-015:ora-25153 暂时表空间为空,ora01652 无法通过128

    写了一个复杂的select语句,突然oracle就报了:ora-25153 暂时表空间为空,这个错误,于是网上查了下.发现了例如以下解决方法:创建一个新的暂时表空间. 首先要有system权限.登录进 ...

随机推荐

  1. 4.cocos场景和层的调用

    调用关系: AppDeligate.cpp bool AppDelegate::applicationDidFinishLaunching() { // initialize director aut ...

  2. storm单机运行与集群运行问题

    使用trident接口时,storm读取kafka数据会将kafka消费记录保存起来,将消费记录的位置保存在tridentTopology.newStream()的第一个参数里, 如果设置成从头开始消 ...

  3. 获取session中存储的所有值的方法

    记录一个获取系统中session存储的对象都有哪些的方法 HttpSession session = request.getSession(); for ( Enumeration e = sessi ...

  4. qrcode length overflow 生成二维码网址长度溢出解决办法

    QRCode.js is javascript library for making QRCode. QRCode.js supports Cross-browser with HTML5 Canva ...

  5. js04---object1

    我们目前为止大多数引用类型都是Object类型的实例,Object也是ECMAScript中使用最多的一种类型(就像java.lang.Object一样,Object类型是所有它的实例的基础).Obj ...

  6. WebService三大基本元素 SOAP WSDL UDDI

    转自:https://blog.csdn.net/hhooong/article/details/51763128 1.SOAP 即 Simple Object AccessProtocol 也就是简 ...

  7. 使用Notepad++的XML Tools插件格式化XML文件

    转自“”:https://blog.csdn.net/qq_36279445/article/details/79803310 1. 安装XML Tools插件 (1) 通过网址http://sour ...

  8. js面向对象3-继承

    一.了解继承  首先我们一起了解下js中继承,其实继承就是后辈继承前辈的属性和方法. 二.继承的方法 从父类继承属性和方法 这是对象冒充的方法,模仿java的继承方法.实现的原理是,通过改变父类的执行 ...

  9. 银行测试 http://blog.csdn.net/stillming/article/details/42275251

    从一家工作了五年的软件公司的测试管理者跳槽到**银行做软件测试,短短两个月,对银行测试有了初步认识,总结和记录下来,加深个人的理解,同时也共享给各位. 银行作为大家的理财顾问,对金钱非常敏感,频繁甚至 ...

  10. Akka边学边写(4)-- MiniRPG

    前面几篇文章用Akka写了HelloWorld和EchoServer,为了更进一步学习Akka,本文将会实现一个非常小的RPG游戏server:MiniRPG. 游戏逻辑 由于是迷你RPG,所以逻辑非 ...