Knowledge Base : Show PGA footprint of an SQL statement

How to show how much PGA is used by an SQl statement in Oracle database:

select s.sid, s.username, s.osuser, s.sql_id, s.logon_time, s.program, PGA_USED_MEM/1024/1024 PGA_USED_MEM, PGA_ALLOC_MEM/1024/1024 PGA_ALLOC_MEM
from v$session s, 
	 v$process p
Where s.paddr = p.addr
and PGA_USED_MEM/1024/1024 > 20
order by PGA_USED_MEM;

How to show the highest PGA usage:

select s.osuser osuser,s.serial# serial,se.sid,n.name,
       max(se.value)/1024/1024 mem_mb
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
and s.sid = (select sid from v$session --where username = '<username>' and OSUSER = '<myOSusername>'
			)
group by n.name,se.sid,s.osuser,s.serial#
order by 2;