oracle 11g 自动内存管理

news/2024/7/20 14:02:39 标签: 内存管理, 数据库, java

Oracle对内存的管理的 优化从未间断,从8i到11g不断地提出新的管理概念。每个本版都对内存管理进行了简化:

  1. 8i->9i:PGA的自动管理;
  2. 9i->10g:SGA的自动管理;
  3. 10g->11g:MEMORY(SGA+PGA)的自动管理。

在11g中oracle引入了

MEMORY_TARGET:oracle所能使用的最大内存,该参数可以动态调整。
MEMORY_MAX_TARGET:MEMORY_TARGET参数所能动态设定的最大值,不能动态调整,需要重启数据库

注:oracle的内存管理方式可以根据本版向下兼容的,11g可以实现10g,9i,8i时的管理方式。

oracle环境:

下面通过一个小测试来看看oracle的内存分配(没有对PGA测试)。

 

SQL> select component,current_size,min_size,max_size from v$memory_dynamic_components;

COMPONENT                      CURRENT_SIZE   MIN_SIZE   MAX_SIZE              
------------------------------ ------------ ---------- ----------              
shared pool                       130023424  109051904  130023424              
large pool                          4194304    4194304    4194304              
java pool                           4194304    4194304    4194304              
streams pool                              0          0          0              
SGA Target                        322961408  322961408  322961408              
DEFAULT buffer cache              176160768  176160768  197132288              
KEEP buffer cache                         0          0          0              
RECYCLE buffer cache                      0          0          0              
DEFAULT 2K buffer cache                   0          0          0              
DEFAULT 4K buffer cache                   0          0          0              
DEFAULT 8K buffer cache                   0          0          0              

COMPONENT                      CURRENT_SIZE   MIN_SIZE   MAX_SIZE              
------------------------------ ------------ ---------- ----------              
DEFAULT 16K buffer cache                  0          0          0              
DEFAULT 32K buffer cache                  0          0          0              
Shared IO Pool                            0          0          0              
PGA Target                        218103808  213909504  218103808              
ASM Buffer Cache                          0          0          0              

已选择16行。

SQL> show parameter memory_target

NAME                                 TYPE        VALUE                         
------------------------------------ ----------- ------------------------------
memory_target                        big integer 516M                          

SQL> run
  1* select (322961408+218103808)/1024/1024||'M' "SGA+PGA" from dual

SGA+                                                                           
----                                                                           
516M                                                                           

 

在此可以看出memory_target参数管理的内存是PGA与SGA之和。

单独计算SGA,通过shared pool,streams pool,java pool,large pool,buffer cache,
ASM Buffer Cache参数求和,计算得出当前SGA使用的大小
314572800

SQL> select (130023424+4194304+4194304+176160768) SGA from dual
  2  ;

       SGA                                                                     
----------                                                                     
 314572800                                                                      
通过SGA的目标值减去当前SGA的动态消耗。

SQL> select 322961408-314572800 "sga target-sga" from dual;

sga target-sga
--------------
8388608

SQL> select * from v$sgastat where pool is null;

POOL NAME BYTES
------------ -------------------------- ----------
fixed_sga 1375792
buffer_cache 167772160
log_buffer 5804032

SQL> select 1375792+5804032 "fixed_sga+log_buffer" from dual;

fixed_sga+log_buffer
--------------------
7179824
在SGA中的包括LOG BUFFER,fixed_sga部分,在最开始的v$memory_dynamic_components视图中
并没有包括这两部分,也说明这两个部分是固定的值,不会动态的改变。
出去SGA动态消耗后,再减去固定消耗,得到当前SGA还剩余多少。

SQL> select 8388608-7179824 from dual;

8388608-7179824
---------------
1208784

在动态分配视图的查询结果中包含Shared IO pool部分,以下是对该参数的说明:
Shared IO Pool Memory
Wait until a shared I/O pool buffer becomes available. This happens when processes are
using these buffers for I/O and the current process needs to wait for the release
of any one of the buffers to the shared I/O pool.

Wait Time: 10msec

Parameters: None                                                               

说明:shared IO pool参数设置是为了尽量减小进程IO的等待而专门配置的参数。
从分析角度看应该是属于PGA部分。

转载于:https://www.cnblogs.com/daduxiong/archive/2010/08/12/1798285.html


http://www.niftyadmin.cn/n/1365805.html

相关文章

数据库学习(九)

分组查询 --group by 语法:select f1...... from table_name where 条件 group by f; f表示要根据f列进行分组 说明:在进行分组查询的时候,分组所依据的f列上的值要有一定的重复性,否则分组没有什么意义 --》查询表&a…

Silverlight中本地化的实现

对于本地化这个功能我个人一直觉得在需求阶段就要确定该项目需不需要实行本地化,这样后面就可以减轻许多工作量,Sl中对本地化功能的支持与ASP.NET 中一样,主要使用CultureInfo类来完成的。 下面来看实现本地化的具体流程,先来看一…

数据库学习(十)

where 条件 分组数据查询--使用having子句进行条件查询 having和where 不同的是,having是对分组数据进行条件查询 having写在group by后 语法: select f1,function(f2)... from table_name where 条件 group by f having 条件 -->查询表中&#xff…

数据库(十一)

不等值连接在关键字on后匹配条件中除了以外关系运算符来实现不等条件(> > < < !&#xff09; --》查询员工编号大于其领导编号的每个员工的姓名、职位、领导姓名select e.name,e.job,e.empno,m.ename,m.empno from t_employee e inner join t_employee m on e.mgr…

C语言中printf格式

转换说明及作为结果的打印输出&#xff05;a 浮点数、十六进制数字和p-记数法&#xff08;C99&#xff09; %A 浮点数、十六进制数字和p-记法&#xff08;C99&#xff09; %c 一个字符 %d 有符号十进制整数 %e 浮点数、e-记数法 %E 浮点数、E-记数法 %f 浮点…

数据库学习(十二)

子查询&#xff1a;也是实现多表查询的&#xff0c;在子查询中可以包含in any all 等关键字&#xff0c;也可以包含比较运算符等。子查询灵活多变。子查询经常出现的如下两个位置&#xff1a; &#xff08;1&#xff09;where子句中的子查询 查询结果为单行单列的子查询 --》…

情景闹钟-情景随心换-手机情景模式闹钟1.0发布

情景闹钟情景闹钟主要功能是手机情景模式自动更换。系统提供四种处理方式&#xff1a;天、周、24小时、不重复&#xff0c;可以设定任何一种重复方式&#xff0c;当到达指定的时间后&#xff0c;情景模式会自动更新为指定的模式。 文件下载 http://files.cnblogs.com/zziss/sis…

致命错误 RC1015: 无法打开包含文件 'afxres.h'.

最近做课程设计是出现了这个问题&#xff0c;以下提供解决方法 确保自己的路径没有问题&#xff1b;如果路径没有问题的话&#xff0c;就是缺少文件 链接&#xff1a;https://pan.baidu.com/s/19mZgcPiexREq1R72XnSVrA 提取码&#xff1a;duai 下载文件覆盖掉自己文件夹下边…