PGA突破pga_aggregate_target限制


SQL> show parameter pga

NAME         TYPE  VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target       big integer 200M


是一个上限目标,而不是启动数据库时预分配的内存大小。可以把

pga_aggregate_target 设置为一个超大的值(远远大于服务器上实际可用的物理内存量)


串行(非并行查询)会话会使用PGA_AGGREGATE_TARGET 中的很少一部分,大约5%或者更少。

并行查询最多可以使用PGA_AGGREGATE_TARGET 的30%


如果测量会话当前使用的PGA,可以看到下面的结果:

SQL> set linesize 200
SQL> select a.name,
       to_char(b.value,'999,999,999') bytes,
       to_char(round(b.value / 1024 / 1024, 1), '99,999.9') mbytes
  from v$statname a, v$mystat b
 where a.statistic# = b.STATISTIC#
   and a.name like '%ga memory%';  2    3    4    5    6 

NAME         BYTES       MBYTES
---------------------------------------------------------------- ------------ ---------
session uga memory          1,302,484     1.2
session uga memory max          1,491,448     1.4
session pga memory          1,933,928     1.8
session pga memory max          2,130,536     2.0

创建package:
SQL> create or replace package demo_pkg
  2  as
  3  type array is table of char(2000) index by binary_integer;
  4  g_data array;
  5  end;
  6  /

Package created.


SQL> begin
  2  for i in 1 .. 200000
  3  loop
  4  demo_pkg.g_data(i) := 'x';
  5  end loop;
  6  end;
  7  /

PL/SQL procedure successfully completed.

SQL> select a.name,
       to_char(b.value,'999,999,999') bytes,
       to_char(round(b.value / 1024 / 1024, 1), '99,999.9') mbytes
  from v$statname a, v$mystat b
 where a.statistic# = b.STATISTIC#
   and a.name like '%ga memory%';  2    3    4    5    6 

NAME         BYTES       MBYTES
---------------------------------------------------------------- ------------ ---------
session uga memory        469,516,748   447.8
session uga memory max        469,516,748   447.8
session pga memory        470,368,228   448.6
session pga memory max        470,368,228   448.6

现在,数据库本身无法控制PGA中分配的这些内存,已经超过了pga_aggregate_target,

但数据库对此无机可施。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

scan724

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值