以下脚本可以用于收集自动SGA(sga_target>0)内存管理ASMM下的实例诊断信息:
spool auto_sga_diag.log
set line 190 pagesize 1400
SELECT a.SGA_MEM + b.PGA_MEM "TOTAL_MEMORY"
FROM (SELECT SUM(current_size) / 1024 / 1024 "SGA_MEM"
FROM v$sga_dynamic_components,
(SELECT SUM(pga_alloc_mem) / 1024 / 1024 "PGA_MEM"
FROM v$process) a
WHERE component IN ('shared pool',
'large pool',
'java pool',
'streams pool',
'DEFAULT buffer cache')) a,
(SELECT SUM(pga_alloc_mem) / 1024 / 1024 "PGA_MEM" FROM v$process) b;
select component,
current_size / 1024 / 1024 "CURRENT_SIZE",
min_size / 1024 / 1024 "MIN_SIZE",
user_specified_size / 1024 / 1024 "USER_SPECIFIED_SIZE",
last_oper_type "TYPE"
from v$sga_dynamic_components;
select component, granule_size / 1024 / 1024 "GRANULE_SIZE(Mb)"
from v$sga_dynamic_components;
col component for a25
col status format a10 head "Status"
col initial_size for 999,999,999,999 head "Initial"
col parameter for a25 heading "Parameter"
col final_size for 999,999,999,999 head "Final"
col changed head "Changed At"
col low format 999,999,999,999 head "Lowest"
col high format 999,999,999,999 head "Highest"
col lowMB format 999,999 head "MBytes"
col highMB format 999,999 head "MBytes"
SELECT component,
parameter,
initial_size,
final_size,
status,
to_char(end_time, 'mm/dd/yyyy hh24:mi:ss') changed
FROM v$sga_resize_ops
ORDER BY component;
SELECT component,
min(final_size) low,
(min(final_size / 1024 / 1024)) lowMB,
max(final_size) high,
(max(final_size / 1024 / 1024)) highMB
FROM v$sga_resize_ops
GROUP BY component
ORDER BY component;
SELECT name, bytes FROM v$sgainfo;
select * from v$sgastat order by bytes asc;
select name, trunc(bytes / 1024 / 1024, 2) "size(MB)"
from v$sgastat
where pool is null
union
select pool, trunc(sum(bytes) / 1024 / 1024, 2) "size(MB)"
from v$sgastat
where pool is not null
group by pool;
select * from V$SGA_CURRENT_RESIZE_OPS;
select * from v$sga_target_advice;
show parameter size
show parameter statistics
spool off;