Re: ORA-01652: unable to extend temp segment by 128 in tablespace TEMP...help

From: David Fitzjarrell <oratune_at_yahoo.com>
Date: Tue, 9 Feb 2010 13:48:32 -0800 (PST)
Message-ID: <153045.67595.qm_at_web65412.mail.ac4.yahoo.com>


V$SORT_USAGE reports extents currently in use and when those are no longer needed by one session they are freed so other sessions can use them.  It's entirely possible that the transaction consuming TEMP space needs more than 512 MB, causing the error you're seeing.  You need to monitor V$SORT_USAGE while the transaction is running to see if you are truly running out of space (and I expect that you are).  Sort activity is not the only operation that can consume TEMP space which is why 10g and later releases have modified that view to become V$TEMPSEG_USAGE, which reports sort and hash activity in the defined temporary tablespace(s).  That being said the query you've posted should provide enough information to you if you run it at regular intervals while the suspect query/DML is being executed.
 
David Fitzjarrell





________________________________
From: Alessandro Lia <a.lia_at_tct-it.com>
To: Kellyn Pedersen <kjped1313_at_yahoo.com>; Oracle-L_at_FreeLists.org
Sent: Tue, February 9, 2010 2:42:22 AM
Subject: Re: ORA-01652: unable to extend temp segment by 128 in tablespace TEMP...help


thank you for your reply.
 
your script return some error (my release is 9.2.0.8.0, some fields not exist in those tables), anyway I ran the following:
 
 
 SELECT   A.tablespace_name tablespace, D.mb_total,
          SUM (A.used_blocks * D.block_size) / 1024 / 1024 mb_used,
          D.mb_total - SUM (A.used_blocks * D.block_size) / 1024 / 1024 mb_free
 FROM     v$sort_segment A,
          (
          SELECT   B.name, C.block_size, SUM (C.bytes) / 1024 / 1024 mb_total
          FROM     v$tablespace B, v$tempfile C
          WHERE    B.ts#= C.ts#
          GROUP BY B.name, C.block_size
          ) D
 WHERE    A.tablespace_name = D.name
 GROUP by A.tablespace_name, D.mb_total;
 
 
and returns:
TABLESPACE     MB_TOTAL    MB_USED    MB_FREE
------------------------------- ----------    ----------            ----------
TEMP                         512           0                 512
 
 
It is very strange it looks like TEMP full by OEM.

----- Original Message ----- 
>From: Kellyn Pedersen 
>To: Oracle-L_at_FreeLists.org ; a.lia@tct-it.com 
>Sent: Monday, February 08, 2010 6:09 PM
>Subject: Re: ORA-01652: unable to extend temp segment by 128 in tablespace TEMP...help
>
>
>Are you sure this is what used up the temp space or if this was just the victim of no temp space left? (I sure feel like I'm asking this a lot lately... :))
>
>Run it again and look at your actual temp space usage at the database level, not just your explain plan...
>select
>, swa.operation_type
>, trunc(swa.work_area_size/
>, trunc(swa.max_mem_used/
>, trunc(swa.tempseg_size/vst.sql_text, swa.sql_id, swa.sid1024/1024) "PGA MB"1024/1024)"Mem MB"1024/1024)"Temp MB"fromv$sql_workarea_active swa, v$session vs, v$sqltext vstwhereswa.sid=vs.sidandswa.sql_id=vs.sql_idandvs.sql_id=vst.sql_idandvst.piece=0order
>Kellyn Pedersen
>Multi-Platform DBA
>I-Behavior Inc.
>http://www.linkedin.com/in/kellynpedersen
>www.dbakevlar.blogspot.com
>
>"Go away before I replace you with a very small and efficient shell script..."
>
>--- On Mon, 2/8/10, Alessandro Lia <a.lia_at_tct-it.com> wrote:
>
>
>>From: Alessandro Lia <a.lia_at_tct-it.com>
>>Subject: ORA-01652: unable to extend temp segment by 128 in tablespace TEMP...help
>>To: Oracle-L_at_FreeLists.org
>>Date: Monday, February 8, 2010, 4:18 AM
>>
>>
>>I create one view (test env 9.2.0.8.0) and I ran a simply query (select * from view_name) without any problem.
>>Then I cut 2 fields from the select that generate the view (the where clause still remain the same) and when I ran the same query (select * from view_name) it returns: "ORA-01652: unable to extend temp segment by 128 in tablespace TEMP".
>>The execution plan shows :
>> 
>>| Id   | Operation                                       |  Name                 | Rows   | Bytes |TempSpc| Cost  |
>>----------------------------------------------------------------------------------------------------------------------------------------------
>>|  11 |       HASH JOIN                              |                            |         1 |    222 |        57M|  4178 |
>>|  12 |        MERGE JOIN CARTESIAN       |                            |  1364K|    41M|               |  1962 |
>> 
>> 
>>These steps there were not with the two fields I cut before. Anyone have any idea why it can happen?
>>I just cut 2 fields not concerning any join in "where" clause and it appears TempSpc 57M never show before.
>> 
>>ps.
>>before I found the TEMP tbs with no file attached. After I added 2 tempfile 256M each.
>> 
>> 
>>Thanks in advance.
>> 
>>Alessandrobyswa.sql_id; 
>
>  
>


      

--
http://www.freelists.org/webpage/oracle-l
Received on Tue Feb 09 2010 - 15:48:32 CST

Original text of this message