Error:
ORA-1652: unable to extend temp segment by 128 in tablespace TEMP Fri Jul 11 01:09:12 2010
What does that error means:
This error is fairly self explanatory - we cannot get enough space for a temporary segment. The size reported in the error message is the number of contiguous free Oracle blocks that cannot be found in the listed tablespace.
How to approach the ORA-1652 error
There are two views in the database that help keep track of the free space in the temporary tablespace: v$sort_usage and v$tempseg_usage (from 9i onwards).
Check the status of the sort segment utilization :
|
If USED_BLOCKS = TOTAL_BLOCKS, find which user and statement is using the temporary sort segment by following;
How Do You Find Who And What SQL Is Using Temp Segments
SELECT a.username, a.sid, a.serial#, a.osuser, b.tablespace, b.blocks, c.sql_text FROM v$session a, v$tempseg_usage b, v$sqlarea c WHERE a.saddr = b.session_addr AND c.address= a.sql_address AND c.hash_value = a.sql_hash_value ORDER BY b.tablespace, b.blocks; |
Resolution
There are two ways of solving this error:
-
Add more tempfiles, increase the size of the current ones or enable auto extend and the most important:
-
Tune the queries/statements so that the sort operations are done in memory and not on the disk.
1 comment:
Dear Sir,
i got error in oracle 11g ent edition.
SMON: following errors trapped and ignored:
ORA-00604: error occurred at recursive SQL level 2
ORA-04068: existing state of packages has been discarded
ORA-04065: not executed, altered or dropped stored procedure "SYS.DICTIONARY_OBJ_TYPE"
ORA-06508: PL/SQL: could not find program unit being called: "SYS.DICTIONARY_OBJ_TYPE"
ORA-06512: at line 2
Regards,
Shankar Pujari
Post a Comment