Datafile for ur TEMP01 tablespace has fixed size and hasn't AUTOEXTEND option.
All disk space in datafile done and oracle can't allocate extent # 512 in this file.
U should:
1) set autoextent option for datafile
or
2) add new datafile to TEMP01 tablespace.
Size of the tablespace is already 2Gb and i believe its sufficient .. And one more thing I absorved is 99% of my sorts are taking place in memory and not in disk.
So what i am thinking is when ever oracle needs the disk space for sorting and the sort is so huge ( not necessarily bigger than the tablespace ), oracle is throwing ORA-1652 error.
Usually i check v$sort_usage and v$sort_segment tables , but couldn't trace anything from it. coz i always see used_blocks are ZERO.
Is there anyway to check the BIGGEST sort of the day or something like that ????
Just by increasing the size of the tablespace may solve the problem for the time being , but i suspect something else..
Any other idea ???
PS: I am talking about a locally managed temporary tablespace
May be this query little bit help u solve sort activity problems:
COLUMN txt FORMAT A50 word
heading 'SQL text' justify left
COLUMN username FORMAT A20 heading 'User name' justify left
COLUMN sid FORMAT 9999 heading 'SID' justify right
COLUMN s# FORMAT 99999 heading 'Serial' justify right
COLUMN cur_cnt FORMAT 99999 heading '#|curs' justify right
COLUMN sort FORMAT 99999 heading 'Disk|sorts' justify right
COLUMN mem FORMAT 999G999G999 heading 'Total|memory' justify right
COLUMN exe FORMAT 999G999G999 heading 'Total|exec' justify right
COLUMN gets FORMAT 99999999 heading 'Blocks|get' justify right
COLUMN reads FORMAT 99999999 heading 'Blocks|read' justify right
COLUMN prows FORMAT 99999999 heading '#|rows' justify right
COLUMN hit FORMAT A24
heading 'Hit ratio' justify left
select
s.sid sid,
s.serial# s#,
s.username username,
a.sql_text txt,
count(c.sid) cur_cnt,
sum(sharable_mem)+sum(runtime_mem) mem,
sum(executions) exe ,
decode(sum(buffer_gets),0,'0',
ltrim(to_char(100-(sum(disk_reads)/(sum(disk_reads)+sum(buffer_gets))*100),'990D99'))||'% ('||
ltrim(to_char(sum(disk_reads),'99999999999'))||'/'||
ltrim(to_char(sum(buffer_gets),'999999999999'))||')') hit,
sum(sorts) sort,
sum(rows_processed) prows
from v$session s,
v$open_cursor c,
v$sqlarea a
where s.SQL_ADDRESS=c.ADDRESS(+) and
s.username is not null and
s.SQL_ADDRESS=a.ADDRESS and
s.username not in ('SYSTEM','SYS')
group by s.sid,
s.serial#,
s.username,
s.SQL_ADDRESS,
c.ADDRESS,
a.sql_text
order by 3,1;
Bookmarks