Arbeitsspeicherauslastung durch die Oracle-Instanz

Sie möchten überprüfen, wieiviel Speicher die einzelnen Speicherbereiche Ihrer Oracle-Instanz benötigen? Das folgende Skript gibt hierüber Auskunft. Es unterteilt den Shared Memory (System Global Area, oder auch kurz SGA) und den Prozess-Speicher einzelner Prozesse (Program Global Area, oder auch kurz PGA) und zeigt zudem Zusatzinformationen zu Prozessen und Programmen an.

ORACLE SGA und PGA: Speicherauslastung
SET TRIMOUT                 ON
SET TRIMPSPOOL              ON
SET LINES                  300
SET PAGES                 3000
COL info       FORMAT       A30
COL MB         FORMAT 999,990.0
COL user_name  FORMAT       A15
COL logon_time FORMAT       A20
COL machine    FORMAT       A15
COL osuser     FORMAT       A15
COL program    FORMAT       A25
 
 
SELECT 'SGA: '||name              AS info
      , round(value/1024/1024, 2) AS MB
      , NULL                      AS program
      , NULL                      AS logon_time
      , NULL                      AS SID
      , NULL                      AS SERIAL
      , NULL                      AS user_name
      , NULL                      AS machine
      , NULL                      AS osuser
FROM  v$sga
UNION ALL
SELECT 'PGA: Process-ID '||p.spid AS info
      , round(p.pga_alloc_mem/1024/1024,2) AS MB
      , p.program                 AS program
      , s.logon_time              AS logon_time
      , s.sid                     AS SID
      , s.serial#                 AS SERIAL
      , s.username                AS user_name
      , s.machine                 AS machine
      , s.osuser                  AS osuser
FROM  v$session s 
    , v$sesstat pcur
    , v$process p 
WHERE 
       pcur.statistic# = 20     AND 
       s.paddr         = p.addr AND 
       pcur.sid        = s.sid 
ORDER BY 2 DESC;