We are using Oracle 11g standard, without any options (diag/tunning/perf).
I can identify one session with the SQL bellow which having a high consumption (1.4 GB) of memory on the past hours… (pga and uga)
There is someway to get details about this consumption?
Whether it is the use of temporary tables or something else?
with x as (select s.osuser osuser , s.username
, s.status
, se.sid
, s.serial# serial
, n.name
, round(max(se.value)/1024/1024, 2) maxmem_mb
, max(se.value) as maxmem
from v$sesstat se , v$statname n , v$session s
where n.statistic# = se.statistic#
and n.name in ('session pga memory','session pga memory max', 'session uga memory','session uga memory max')
and s.sid = se.sid
group by s.osuser, s.username, s.status, se.sid, s.serial#, n.name
order by maxmem desc
)
select * from x where rownum < 5
;
Best Answer
After some research I've discovered the view V$PROCESS_MEMORY_DETAIL and how use it.
By default it's always empty and need some commands to "enable" it (oradebug or alter session).
References I found:
This quote from Oracle Article says everything :
and a useful SQL:
Here is the informations detailed...
Just needs digging the mysterious names .