在Oracle数据库中进行order by or group by、索引的创建和重创建、distinct操作、union & intersect & minus sort-merge joins、Analyze 操作、异常等操作时,会产生很多的临时数据。如有一张员工信息表,数据库中是安装记录建立的时间来保存的。如果用户查询时,使用Order BY排序语句指定按员工编号来排序,那么排序后产生的所有记录就是临时数据。通常情况下,Oracle数据库会先将这些临时数据存放到内存的PGA(程序全局区)内。如果数据量太大,PGA存不了,则会放入临时表空间。

    默认情况下,临时表空间对所有用户是共享的。当然可以为特殊用户指定单独的临时表空间。临时表空间可以重用。

    当临时表空间不足的时候,就会报:ORA-01652:无法通过128(在表空间TEMP中)扩展temp段

    这个时候,想当然的就想看看临时表空间的使用情况了:

    select tablespace_name, bytes, user_bytes, user_bytes/bytes,file_name from dba_temp_files;

    

   99%?但是其实这个使用率并没有太大的意义,因为当新增一个临时文件(如TEMP02.DBF),然后再跑一次order by,这个使用率就直接飙到99%了。然后换其他的order by语句测试,发现还是可以正常查出数据,说明临时表空间的使用率跟正常的表空间使用率,有所不一样(具体怎么个不一样,就不得而知了)。

  也就是说,报错的时候,它的使用率可能是99%;正常运行的时候,使用率也可能是99%。

  当报错的时候,就说明临时表空间真的不足了。但由于临时表空间表现为的是dbf文件,那扩展空间也就方便多了。可以直接增大原临时文件,还可以增加临时文件以达到扩大临时表空间的目的。如果你的临时表空间满得太快,这种方式就治标不治本了。可以通过v$sort_usage和v$sort_segment两个视图,分析出是哪些用户和哪些sql导致临时表空间暴涨,再针对性解决。除此之外,优化sql以及对查询的字段建立索引,也可以减少临时表空间的占用。在Oracle中,如果表没有索引,那么会将所有的数据都复制到临时表空间,而如果有索引的话,一般只是将索引的数据复制到临时表空间中。

  除了以上这种临时表空间真正满了的情况,查询会报错以外,还有一种情况,也会报同样的错,那就是临时文件offline了。

  

  在v_$tempfile视图中,记录了临时文件的状态,一种是online,一种是offline。当状态为offline的时候,查询也有可能会报这个错。

  当然,如果一个临时文件offline了,查询大小时,也是查不出来的。

  

  

  与临时表空间相关的语句:

  --查询用户所使用的临时表空间:
  select username,default_tablespace,temporary_tablespace from dba_users;
 
  --查询临时表空间大小以及使用率:
  select tablespace_name, bytes, user_bytes, user_bytes/bytes,file_name from dba_temp_files;
 
  --查询临时文件是否在线:
  select name,status from v$tempfile;
 
  --修改临时文件在线(离线)状态:
  alter database tempfile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEMP02.DBF' online(offline);
 
  --增加临时文件大小(增加原文件):
  alter database tempfile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEMP01.DBF' resize 100m;
 
  --通过增加新的临时文件,来扩大临时表空间:
  alter tablespace temp add tempfile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEMP02.DBF' size 4000m;
 
  --删除临时文件:
  alter database tempfile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEMP02.DBF' drop;
 
  --将临时文件设置为自动扩展:
  alter database tempfile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEMP01.DBF' autoextend on next 5m maxsize unlimited;
 
  --关闭(启动)临时文件的自动增长:
   alter database tempfile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEMP01.DBF' autoextend off(on);

ORA-01652:无法通过128(在表空间TEMP中)扩展temp段的更多相关文章

  1. ORA-01652: 无法通过 128 (在表空间 HIS_TABLESPACE_TEMP 中) 扩展 temp 段

    前言:采用jmeter进行压力测试,大概向oracle 添加了140W条数据. 结果系统涉及到该表的业务都异常卡.访问阿里巴巴的那个druid monitor,因为系统中集成了,查看sql监控中的sq ...

  2. FP 某段SQL语句执行时间超过1个小时,并报错:ORA-01652: 无法通过 128 (在表空间 TEMPSTG 中) 扩展

    一.出现如下两个错误:1.某一段SQL语句执行时间超过1个小时:2.一个小时后,提示如下错误:ORA-01652: 无法通过 128 (在表空间 TEMPSTG 中) 扩展 temp 段ORA-065 ...

  3. 【转】关于“ORA-01653: 表 SYS.AUD$ 无法通过 128 (在表空间 SYSTEM 中) 扩展”的错误

    SQL*Plus: Release 11.1.0.6.0 - Production on 星期一 5月 17 18:31:08 2010 Copyright (c) 1982, 2007, Oracl ...

  4. java.sql.BatchUpdateException: ORA-01691: Lob 段 CSASSSMBI.SYS_LOB0000076987C00003$$ 无法通过 128 (在表空间 HRDL_CSASS 中) 扩展

    问题: 在tomcat日志信息中出现:java.sql.BatchUpdateException: ORA-01691: Lob 段 CSASSSMBI.SYS_LOB0000076987C00003 ...

  5. oracle ora-01652无法通过128(在表空间xxx中)扩展 问题解决方式

    问题原因建立的表空间dbf文件大小上限了 一. select * from dba_data_files 使用该条语句可以查看当前库中有多少表空间并且DBF文件的存储位置 二.查看表空间是否开启了自动 ...

  6. ORA-01652:无法通过128(在表空间temp中)扩展temp段 解决方法

    ORA-01652:无法通过128(在表空间temp中)扩展temp段 解决方法 (2016-10-21 16:49:53)   今天在做一个查询的时候,报了一个"ORA-01652无法通过 ...

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

    今天提交请求后,提示ORA-01652: 无法通过 128 (在表空间 TEMP 中) 扩展 temp 段.最后通过ALTER DATABASE TEMPFILE '/*/*/db/apps_st/d ...

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

    问题描述: 今天建索引的时候报:ora-01652无法通过128(在表空间temp中)扩展temp段 1.查看表空间是自动增长,且建表空间时是没有设表空间最大值的. 2.查看了一下表空间剩余多少竟然只 ...

  9. ORA-01652: 无法通过 128 (在表空间 TEMP 中) 扩展 temp 段(EXP-00056: 遇到 ORACLE 错误 1652 ORA-01652: unable to extend temp segment by 128 in tablespace TEMP)

    数据库报 ORA-01652: 无法通过 128 (在表空间 TEMP 中) 扩展 temp 段 两种解决方式: 第一种) sql>select * from v$tempfile; 发现tem ...

随机推荐

  1. ComboBox( 下拉列表框)

    一. 加载方式//class 加载方式<select id="box" class="easyui-combobox" name="box&qu ...

  2. Web前端开发面试题赋答案

    第一部分:用CSS实现布局 让我们一起来做一个页面 首先,我们需要一个布局. 请使用CSS控制3个div,实现如下图的布局. 第二部分:用javascript优化布局 由于我们的用户群喜欢放大看页面 ...

  3. zepto自定义事件

    <!--测试自定义事件 trigger--> <script> $(function () { var meEvent = $.Event("custom" ...

  4. 初学mysql命令

    创建数据库mydb: create database mydb; 运行sql脚本文件:(连接数据库后) \. e:\myphpWeb\createTables.sql 删除数据库mydb: drop ...

  5. gdb调试整理

    调试环境:linux调试工具:gdb 调试类别 1.调试core文件  gdb 应用程序名 core文件名2.调试正在执行的程序 gdb 应用程序名 pid 3.gdb 应用程序名         4 ...

  6. Java学习笔记--对象克隆

    转自:Edward_qing_Lee 的专栏 http://blog.csdn.net/edward_qing_lee/article/details/8249102 一.java 方法参数 理解: ...

  7. iOS 7 二维码

    维码扫描 2014-06-13 10:20:29|  分类: iOS|举报|字号 订阅     下载LOFTER客户端     // //  TCTosweepScan.m //  TongCheng ...

  8. HTML5面试题-备

    万不可投机取巧.只求当时过关,非长久之计也!(感谢大神分享) 面试有几点需要注意: 面试题目: 根据你的等级和职位变化,入门级到专家级:范围↑.深度↑.方向↑. 题目类型: 技术视野.项目细节.理论知 ...

  9. 【转】const的用法,特别是用在函数前面与后面的区别!

    在普通的非 const成员函数中,this的类型是一个指向类类型的 const指针.可以改变this所指向的值,但不能改变 this所保存的地址. 在 const成员函数中,this的类型是一个指向 ...

  10. 怎么通过网站优化来增强SEO效果?

    真正好的网站优化不应该针对哪一个搜索引擎,而应该关注用户的需求.搜索引擎把这这用户指标权重提升,实际上也是希望把更多的精力集中在用户体验的提升上面.那么,这些用户指标应该怎样提升呢?方法多种多样,下面 ...