帮忙看看我设置的几个参数: show parameter sga NAME TYPE VALUE ------------------------------------ -------------------------------- ------------------------------ lock_sga boolean FALSE pre_page_sga boolean FALSE sga_max_size big integer 12G sga_target big integer 10G SQL> show parameter mem NAME TYPE VALUE ------------------------------------ -------------------------------- ------------------------------ hi_shared_memory_address integer 0 memory_max_target big integer 12G memory_target big integer 12G select 'SGA' AS NAME,ROUND(sum(value)/1024/1024/1024,2)||'G' AS "SIZE(G)" from v$sga UNION select 'PGA' AS NAME,ROUND(value/1024/1024,2)||'M' AS "SIZE(M)" from v$pgastat where name='total PGA allocated' UNION select 'TOTAL' AS NAME,((SELECT ROUND(sum(value)/1024/1024/1024,2) from v$sga)+(select ROUND(value/1024/1024/1024,2) from v$pgastat where name='total PGA allocated'))||'G' AS "SIZE(M)" FROM DUAL UNION SELECT NAME,TO_CHAR(VALUE) FROM V$PGASTAT WHERE NAME='process count'; NAME SIZE(G) ---------------------------------------------------------------- ----------------------------------------- PGA 621.62M SGA 11.95G TOTAL 12.56G process count 196 [oracle@bpmora ksession]$ free -m total used free shared buffers cached Mem: 15953 15796 156 0 60 11516 -/+ buffers/cache: 4219 11734 Swap: 17178 4704 12474 我想问一下我memory_max_target设置的是12G,为什么oracle总共用的内存会多于12G啊,还有我这台主机共16G,这台机器上就跑了一个oracle, 其他什么都没跑,如果oracle共用了12.5G,那应该还有内存的,为什么就剩这么点内存了啊,才156M,这个有什么方法能排查一下哪里把其他的 内存占用了吗?