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,
但数据库对此无机可施。
PGA突破pga_aggregate_target限制的更多相关文章
- ORACLE内存结构:PGA And UGA,ORACLE用户进程、服务器进程
执行一个SQL语句 执行查询语句的过程: 用户进程执行一个查询语句如select * from emp where empno=7839 用户进程和服务器进程建立连接,把改用户进程的信息存储到PGA的 ...
- 对oracle实例的内存(SGA和PGA)进行调整,优化数据库性
一.名词解释 (1)SGA:SystemGlobal Area是OracleInstance的基本组成部分,在实例启动时分配;系统全局域SGA主要由三部分构成:共享池.数据缓冲区.日志缓冲区. (2) ...
- oracle实例的内存(SGA和PGA)调整,优化数据库性能
一.名词解释 (1)SGA:SystemGlobal Area是OracleInstance的基本组成部分,在实例启动时分配;系统全局域SGA主要由三部分构成:共享池.数据缓冲区.日志缓冲区. (2) ...
- enmo_day_08
性能监视 管理内存组件 自动内存管理(AMM) : 指定分配给实例的总内存(SGA, PGA) 自动共享内存管理(ASMM) : 指定SGA, 管理分配给共享池, java池, 动态性能视图 :v$( ...
- Oracle体系结构之Oracle10gR2体系结构-内存、进程
oracle体系结构图1 oracle体系结构图2 用户进程(访问oracle的客户端的总称) 工具的使用:sqlplus.pl/sql developer 如何访问数据库: 本机直接通过sock方式 ...
- oracle系统调优
在Oracle数据库系统中,起到调节作用的参数叫初始化参数,在Oracle 8i及以前的版本中,这些初始化参数记录在INITsid.ora文件中:而Oracle 9i/10g/11g中将这些参数记录在 ...
- Oracle PGA作用&work_mode
专有模式下ORACLE会给每个连接分配一个服务进程(Server Process),这个服务进程将为这个连接服务.为这个服务进程分配的内存叫做PGA.PGA不需要Latch也不需要Lock,永远不会发 ...
- Oracle之内存结构(SGA、PGA)
一.内存结构 SGA(System Global Area):由所有服务进程和后台进程共享: PGA(Program Global Area):由每个服务进程.后台进程专有:每个进程都有一个PGA. ...
- PGA
Server Process PGA 1.PGA作用 2.PGA構成 1)private sql area 2)session memory 3)sql ...
随机推荐
- mybatis0204 一对多查询
查询所有订单信息及订单下的订单明细信息. sql语句 主查询表:订单表 关联查询表:订单明细 SELECT orders.*, user.username, user.sex , orderdetai ...
- C++中的术语
1 声明式:所谓声明式是告诉编译器某个东西的名称和类型,但忽略细节.下面都是声明式: extern int x; //对象(object)声明式 记住:变量的声明加extern关键字 std::siz ...
- MyEclipse8.6安装svn(非link方式)
此方法经试验可行,暂时可以作为最佳解决方案. 本文所使用的MyEclipse版本为:8.6.1 svn的eclipse插件版本为:1.6.17,下载地址:http://subclipse.tigris ...
- float与double剖析
今天研究下float与double的编码 float: 我们来看一下这组数是如何一步步从16进制转换到float的 float编码格式: 1.将16进制转换到2进制 整理后:0 1000 0010 1 ...
- Maven Integration for Eclipse 正确地址
m2eclipse has moved from sonatype to eclipse. The correct update site is http://download.eclipse.org ...
- instanceof的用法②
其实这个问题以前也困扰过我.我个人理解的一个应用场合就是,当你拿到一个对象的引用时(例如参数), 你可能需要判断这个引用真正指向的类.所以你需要从该类继承树的最底层开始,使用instanceof操作符 ...
- Erlang - Download and Install for Linux
1. 下载 Erlang [huey@huey-K42JE erlang]$ wget http://www.erlang.org/download/otp_src_R16B03.tar.gz 2. ...
- 传统的log4j实战
/** * */ package log4j; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator ...
- datazen 修改instanceid db_encryption_key
切换到Datazen.Enterprise.Server.3.0.3327.exe 所在的目录 运行如下命令: Datazen.Enterprise.Server.3.0.3327.exe DATAZ ...
- java异常类的使用
1.异常的概念 什么是异常?程序出错分为两部分,编译时出粗和运行时出错.编译时出错是编译器在编译源码时发生的错误: 运行时出错是在编译通过,在运行时出现的错误.这种情况叫异常. 例如:数组越界,除数为 ...