下面第一个SQL语句获得数据库系统当前的PGA实际使用值,show parameter pga现在PGA设定的目标值,
令我奇怪的是实际使用的PGA值超过了pga_aggregate_target设定值,这是怎么回事啊?请大家分析一下啊。SQL> SELECT sum(value/1024/1024)
  2  FROM v$session s, v$sesstat st,v$statname sn
  3  WHERE  st.sid = s.sid AND st.statistic# = sn.statistic#
  4  AND sn.name ='session pga memory';SUM(VALUE/1024/1024)
--------------------
          32.0115585SQL> show parameter pgaNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target                 big integer 30M
SQL> show parameter workNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
fileio_network_adapters              string
workarea_size_policy                 string      AUTO

解决方案 »

  1.   

    是会超过的,这个在oracle doc里面是有这句话的.
      

  2.   

    total PGA allocated - Current amount of PGA memory allocated by the instance. Oracle attempts to keep this number below the value of the PGA_AGGREGATE_TARGET initialization parameter. However, it is possible for the PGA allocated to exceed that value by a small percentage and for a short period of time when the work area workload is increasing very rapidly or when PGA_AGGREGATE_TARGET is set to a small value. over allocation count - This statistic is cumulative since instance startup. Over allocating PGA memory can happen if the value of PGA_AGGREGATE_TARGET is too small. When this happens, Oracle cannot honor the value of PGA_AGGREGATE_TARGET and extra PGA memory needs to be allocated.