Oracle对内存的管理的 优化从未间断,从8i到11g不断地提出新的管理概念。每个本版都对内存管理进行了简化:
8i->9i:PGA的自动管理;
9i->10g:SGA的自动管理;
10g->11g:MEMORY(SGA+PGA)的自动管理。
在11g中oracle引入了自动化内存管理(Automatic Memory Management)概念,仅用两个参数就能完成oracle的内存管理工作。DBA的工作看来又要轻松不少了,看看两个参数:
view sourceprint?1 MEMORY_TARGET:oracle所能使用的最大内存,该参数可以动态调整。
MEMORY_MAX_TARGET:MEMORY_TARGET参数所能动态设定的最大值,不能动态调整,需要重启数据库。
注:oracle的内存管理方式可以根据本版向下兼容的,11g可以实现10g,9i,8i时的管理方式。
oracle环境:
下面通过一个小测试来看看oracle的内存分配(没有对PGA测试)。
view sourceprint?01 SQL> select component,current_size,min_size,max_size from v$memory_dynamic_components;
02
03 COMPONENT CURRENT_SIZE MIN_SIZE MAX_SIZE
04 ------------------------------ ------------ ---------- ----------
05 shared pool 130023424 109051904 130023424
06 large pool 4194304 4194304 4194304
07 java pool 4194304 4194304 4194304
08 streams pool 0 0 0
09 SGA Target 322961408 322961408 322961408
10 DEFAULT buffer cache 176160768 176160768 197132288
11 KEEP buffer cache 0 0 0
12 RECYCLE buffer cache 0 0 0
13 DEFAULT 2K buffer cache 0 0 0
14 DEFAULT 4K buffer cache 0 0 0
15 DEFAULT 8K buffer cache 0 0 0
16
17 COMPONENT CURRENT_SIZE MIN_SIZE MAX_SIZE
18 ------------------------------ ------------ ---------- ----------
19 DEFAULT 16K buffer cache 0 0 0
20 DEFAULT 32K buffer cache 0 0 0
21 Shared IO Pool 0 0 0
22 PGA Target 218103808 213909504 218103808
23 ASM Buffer Cache 0 0 0
24
25 已选择16行。
26
27 SQL> show parameter memory_target
28
29 NAME TYPE VALUE
30 ------------------------------------ ----------- ------------------------------
31 memory_target big integer 516M
32
33 SQL> run
34 1* select (322961408+218103808)/1024/1024||'M' "SGA+PGA" from dual
35
36 SGA+
37 ----
38 516M
在此可以看出memory_target参数管理的内存是PGA与SGA之和。
单独计算SGA,通过shared pool,streams pool,java pool,large pool,buffer cache,
ASM Buffer Cache参数求和,计算得出当前SGA使用的大小(314572800)。
view sourceprint?1 SQL> select (130023424+4194304+4194304+176160768) SGA from dual
2 2 ;
3
4 SGA
5 ----------
6 314572800
通过SGA的目标值减去当前SGA的动态消耗。
view sourceprint?1 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
------------ -------------------------- ----------
fi
关键词标签:oracle
相关阅读
热门文章
Oracle中使用alter table来增加,删除,修改列的语法
oracle中使用SQL语句修改字段类型-oracle修改SQL语句案例
误删Oracle数据库实例的控制文件
为UNIX服务器设置Oracle全文检索
人气排行 oracle中使用SQL语句修改字段类型-oracle修改SQL语句案例 Oracle中使用alter table来增加,删除,修改列的语法 ORACLE SQL 判断字符串是否为数字的语句 ORACLE和SQL语法区别归纳(1) oracle grant 授权语句 ORACLE修改IP地址后如何能够使用 如何加速Oracle大批量数据处理 Oracle删除表的几种方法
查看所有0条评论>>