ORA-01652:无法通过128(在表空间temp中)扩展temp段 解决方法
ORA-01652:无法通过128(在表空间temp中)扩展temp段 解决方法
(2016-10-21 16:49:53)
今天在做一个查询的时候,报了一个“ORA-01652无法通过128(在表空间temp中)扩展temp段”
ORA-01652: 无法通过128(在表空间TOSTEMP中)扩展 temp 段
ORA-06512: 在"Funcking", line 60
ORA-06512: 在line 1
错误解决网上也有一些相关的资料。我的实验解决方法是这样的:
1.查看表空间使用率(包括临时表空间)
select * from (
Select a.tablespace_name,
to_char(a.bytes/1024/1024,'99,999.999') total_bytes,
to_char(b.bytes/1024/1024,'99,999.999') free_bytes,
to_char(a.bytes/1024/1024 - b.bytes/1024/1024,'99,999.999') use_bytes,
to_char((1 - b.bytes/a.bytes)*100,'99.99') || '%' use
from (select tablespace_name,
sum(bytes) bytes
from dba_data_files
group by tablespace_name) a,
(select tablespace_name,
sum(bytes) bytes
from dba_free_space
group by tablespace_name) b
where a.tablespace_name = b.tablespace_name
union all
select c.tablespace_name,
to_char(c.bytes/1024/1024,'99,999.999') total_bytes,
to_char( (c.bytes-d.bytes_used)/1024/1024,'99,999.999') free_bytes,
to_char(d.bytes_used/1024/1024,'99,999.999') use_bytes,
to_char(d.bytes_used*100/c.bytes,'99.99') || '%' use
from
(select tablespace_name,sum(bytes) bytes
from dba_temp_files group by tablespace_name) c,
(select tablespace_name,sum(bytes_cached) bytes_used
from v$temp_extent_pool group by tablespace_name) d
where c.tablespace_name = d.tablespace_name
)
order by tablespace_name
2.查看文件是否自动扩展
select d.file_name,d.tablespace_name,d.autoextensible from dba_data_files d
如果想查看临时表空间文件是否自动扩展
select d.file_name,d.tablespace_name,d.autoextensible from dba_temp_files d;
3.对临时文件进行扩展。
1)TOSTEMP表空间使用率接近100%,对它进行扩展。
SQL> alter database tempfile 'C:xxxxxx\TOSTEMP01.DBF'resize 500M;
2)若是发现 表空间使用率接近100%,且不可扩展修改文件自动可扩展性
alter database datafile 'E:xxxxxxESCALADE.ORA' autoextend on;
3)修改可扩展上限为无限制
SQL> alter database tempfile ‘/u01/app/oracle/oradata/orcl/temp01.dbf’ autoextend on next 5m maxsize unlimited;
正常的解决方案,请参考:http://www.atmarkit.co.jp/fdb/rensai/ora_admin/03/ora_admin02.html
很遗憾把tempfile 改到3G也不行。
根据网上看到有些朋友又碰到这样的问题,说是只要进行analyze就可以。我也进行analyze分析一下。
EXEC DBMS_UTILITY.ANALYZE_SCHEMA('USER','ESTIMATE');
附DBMS_UTILITY.ANALYZE_SCHEMA作用:
このプロシージャは、スキーマ内にあるすべての表、クラスタおよび索引でANALYZE
コマンドを実行します。このプロシージャを使用して、非オプティマイザ統計情報を収集します。
然后再执行存储过程,等待结果......(19:53开始)
20:40,结果出来了,还是不行。值得进一步探讨。
经过这次的失败后,我在想问题到底在哪里?
我把这个出错的SQL文从存储过程摘出来,进行分析。
1)从SQL结构中没发现任何问题。
2)在sqlplus里面跟了一下执行计划。
在经过30分钟左右的等待后,这一执行计划显示了出来。看得真是吓了一跳。
buffer消耗超过5000G,都不敢相信自己的眼睛,byte位数算了几遍,确实是特别大。
看到执行计划我也就知道原因是什么了,临时空间怎么加也不会够呀。
以上是实验告一段落,对于这种问题的解决方法,如下:
1)首先对存储过程的执行计划进行分析。
看占用多大的临时空间,有没有优化的余地,怎么优化。
(这就是网上说碰巧用analyze命令,结果通过的原因,应该是analyze命令,让执行计划发生了改变)
2)优化后的临时空间大于现有的临时空间的话,扩张临时空间。
以上算是我对ORA-01652错误的诊断分析。
ORA-01652:无法通过128(在表空间temp中)扩展temp段 解决方法的更多相关文章
- ORA-01652: 无法通过 128 (在表空间 HIS_TABLESPACE_TEMP 中) 扩展 temp 段
前言:采用jmeter进行压力测试,大概向oracle 添加了140W条数据. 结果系统涉及到该表的业务都异常卡.访问阿里巴巴的那个druid monitor,因为系统中集成了,查看sql监控中的sq ...
- FP 某段SQL语句执行时间超过1个小时,并报错:ORA-01652: 无法通过 128 (在表空间 TEMPSTG 中) 扩展
一.出现如下两个错误:1.某一段SQL语句执行时间超过1个小时:2.一个小时后,提示如下错误:ORA-01652: 无法通过 128 (在表空间 TEMPSTG 中) 扩展 temp 段ORA-065 ...
- 【转】关于“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 ...
- java.sql.BatchUpdateException: ORA-01691: Lob 段 CSASSSMBI.SYS_LOB0000076987C00003$$ 无法通过 128 (在表空间 HRDL_CSASS 中) 扩展
问题: 在tomcat日志信息中出现:java.sql.BatchUpdateException: ORA-01691: Lob 段 CSASSSMBI.SYS_LOB0000076987C00003 ...
- oracle ora-01652无法通过128(在表空间xxx中)扩展 问题解决方式
问题原因建立的表空间dbf文件大小上限了 一. select * from dba_data_files 使用该条语句可以查看当前库中有多少表空间并且DBF文件的存储位置 二.查看表空间是否开启了自动 ...
- ora-01652无法通过128(在表空间temp中)扩展temp段
今天提交请求后,提示ORA-01652: 无法通过 128 (在表空间 TEMP 中) 扩展 temp 段.最后通过ALTER DATABASE TEMPFILE '/*/*/db/apps_st/d ...
- 解决ora-01652无法通过128(在表空间temp中)扩展temp段
问题描述: 今天建索引的时候报:ora-01652无法通过128(在表空间temp中)扩展temp段 1.查看表空间是自动增长,且建表空间时是没有设表空间最大值的. 2.查看了一下表空间剩余多少竟然只 ...
- ORA-01652:无法通过128(在表空间TEMP中)扩展temp段
在Oracle数据库中进行order by or group by.索引的创建和重创建.distinct操作.union & intersect & minus sort-merge ...
- 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 ...
随机推荐
- 如何获取ResultSet的行数和列数
当我们执行数据库查询返回一个ResultSet的时候,很多情况下我们需要知道这个ResultSet的大小,即它的行数和列数.我们知道它的列数可以通过resultSet.getMetaData().ge ...
- fly bird
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- python中的函数
Python 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也 ...
- js实现阶乘
//while循环实现function calNum(n) { var product = 1; while(n > 1){//1*5*4*3*2,1*n*(n-1)*(n-2)*...*2 p ...
- [翻译svg教程]Path元素 svg中最神奇的元素!
先看一个实例 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999 ...
- [转]字符型IP地址转换成数字IP的SQL函数
使用SQL函数可以实现许多的功能,下面为您介绍的是字符型IP地址转换成数字IP的SQL函数示例,供您参考,希望对您学习SQL函数能够有所帮助. /**//*--调用示例 sele ...
- Github+Jekyll —— 创建个人免费博客(一)从零开始
摘要: 本文中我将介绍一下如何在github上搭建个人Blog(博客),也顺便让我们掌握一下github Pages功能,另外还涉及到Jekyll技术. ======================= ...
- PHP防止跨域提交表单
在提交的服务段的数据进行验证. $servername=$_SERVER['SERVER_NAME'];//当前运行脚本所在服务器主机的名字. $sub_from=$_SERVER[" ...
- Python之路【第六篇】python基础 之面向对象(一)
一.三大编程范式 1.面向过程编程 2.函数式编程 3.面向对象编程 二.编程进化论 1.编程最开始就是无组织无结构,从简单控制流中按步写指令 2.从上述的指令中提取重复的代码块或逻辑,组织到一起(比 ...
- c++ eof()函数
C++ eof()函数可以帮助我们用来判断文件是否为空,抑或是判断其是否读到文件结尾.在这里我们将会对其进行详细的介绍. C++编程语言中的很多功能在我们的实际应用中起着非常大的作用.比如在对文件文本 ...