При большом количестве пользователей отбираю только "съевших" больше мега и сортировку в обратном порядке (в девелопере сразу видно наиболее виноватых)
И добавил вывод команды на килл, чтобы сразу так сказать, не отходя от кассы прибить.
Код:
SELECT
NVL(A.USERNAME,'(oracle)') AS USERNAME, 'ALTER SYSTEM KILL SESSION '''||A.SID||','||A.SERIAL#||''';' as KILL ,A.OSUSER,
A.MODULE,A.PROGRAM,sum(TRUNC(B.VALUE/1024/1024)) AS MB,a.machine
FROM GV$SESSION A,GV$SESSTAT B,GV$STATNAME C
WHERE A.SID = B.SID
AND A.INST_ID = B.INST_ID
AND B.STATISTIC# = C.STATISTIC#
AND B.INST_ID = C.INST_ID
AND C.NAME = 'session pga memory'
AND A.PROGRAM IS NOT NULL
having 6 > 1
group by a.username,A.SID, A.SERIAL# ,A.OSUSER,A.MODULE,A.PROGRAM,A.MACHINE
order by 6 desc