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_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、重啟數據庫
重啟數據庫,數據庫重啟時,smon進程會完成臨時段釋放TEMP表空間的清理操作
4、增加temp空間
--增加新的臨時文件,來擴大臨時表空間 alter tablespace TEMP add tempfile '/dbfile/oradata/tstdb/temp02.dbf' resize 4000m;