oracle数据库报错,ORA-01652:无法通过128(在表空间TEMP中)扩展temp段
出现这个报错一般是两种情况,oracle的temp空间不足;存在性能非常差的带全表扫描的sql占用的资源超过了temp的大小
1、查看临时表空间是不是自动可扩展
select d.file_name,d.tablespace_name,d.autoextensible from dba_temp_file d;
2、查看消耗临时表空间资源比较多的sql语句
SELECT se.username,se.sid,su.extents,su.blocks * to_number(rtrim(p.value)) asSpace,tablespace,segtype,sql_textFROM v$sort_usage su, v$parameter p, v$session se, v$sql s WHERE p.name = 'db_block_size'AND su.session_addr = se.saddrAND s.hash_value = su.sqlhashAND s.address = su.sqladdrORDER BY se.username, se.sid;
3、重启数据库
重启数据库,数据库重启时,smon进程会完成临时段释放TEMP表空间的清理操作
4、增加temp空间
--增加新的临时文件,来扩大临时表空间alter tablespace TEMP add tempfile '/dbfile/oradata/tstdb/temp02.dbf' resize 4000m;