← Performance
Oracle · Performance
How to check historical SGA and PGA allocation from AWR in Oracle
Show Oracle SGA and PGA allocation per AWR snapshot from DBA_HIST_SGASTAT and DBA_HIST_PGASTAT, ordered newest first.
Tested on11g12c18c19c21c23ai26ai
Historical view of SGA and PGA allocation across AWR snapshots — useful for spotting when memory pressure started or how memory changed after a restart or a resize.
DBA_HIST_SGASTAT, DBA_HIST_PGASTAT, and DBA_HIST_SNAPSHOT are part of Oracle Diagnostic Pack and require that license on Enterprise Edition.
SET LINES 1000 PAGES 1000
SELECT sn.instance_number,
sga.allo AS sga_gb,
pga.allo AS pga_gb,
(sga.allo + pga.allo) AS total_gb,
TRUNC(sn.end_interval_time, 'mi') AS time
FROM (SELECT snap_id, instance_number,
ROUND(SUM(bytes) / 1024 / 1024 / 1024, 3) AS allo
FROM dba_hist_sgastat
GROUP BY snap_id, instance_number) sga,
(SELECT snap_id, instance_number,
ROUND(SUM(value) / 1024 / 1024 / 1024, 3) AS allo
FROM dba_hist_pgastat
WHERE name = 'total PGA allocated'
GROUP BY snap_id, instance_number) pga,
dba_hist_snapshot sn
WHERE sn.snap_id = sga.snap_id
AND sn.instance_number = sga.instance_number
AND sn.snap_id = pga.snap_id
AND sn.instance_number = pga.instance_number
ORDER BY sn.snap_id DESC, sn.instance_number;performancememoryawrdba_hist_sgastatdba_hist_pgastat