代码改变世界

ORACLE 11G内存管理方式

  abce  阅读(973)  评论(0编辑  收藏  举报

 


SGA包含的组件:

组件名
说明
参数
buffer cache
存放从数据文件中读取的数据拷贝,所有用户之间是可以共享的
db_cache_size
db_keep_cache_size
db_recycle_cache_size
db_nk_cache_size
redo log buffer
redo数据
log_buffer
shared pool
存放库缓存和数据字典缓存,结果缓存,并行执行消息缓存,以及控制结构信息
shared_pool_size
shared_pool_reserved_size
result_cache_max_size*
large pool
共享模式下为会话分配内存,oracle xa,并行查询缓存,rman
large_pool_size
java pool
为java代码分配内存
java_pool_size
streams pool
用于oracle stream
streams_pool_size

 

1.AMM(Automatic Memory Management) – 统一管理SGA和PGA
 -memory_target
 -memory_max_target

2.ASSM(Automatic Shared Memory Management) – 自动管理SGA  

自动管理SGA(buffer cache、shared pool、large pool、java pool、streams pool),使用$sga_target_advice进行调优  

-sga_target:动态参数  

-sga_max_size

 

在ASSM中以下部分不受管理:  

-Log buffer  

-Other buffer caches (such as KEEP, RECYCLE, and other nondefault block size)  

-Fixed SGA and other internal allocations

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
SQL> select * from v$sga_target_advice;
 
  SGA_SIZE SGA_SIZE_FACTOR ESTD_DB_TIME ESTD_DB_TIME_FACTOR ESTD_PHYSICAL_READS
---------- --------------- ------------ ------------------- -------------------
      7264             .25      1187001              4.5075          3994550959
     10896            .375       453075              1.7205          1350811286
     14528              .5       276980              1.0518           585978929
     18160            .625       263602               1.001           525730243
     21792             .75       263339                   1           525730243
     25424            .875       263339                   1           525730243
     29056               1       263339                   1           525730243
     32688           1.125       263339                   1           525730243
     36320            1.25       263339                   1           525730243
     39952           1.375       263339                   1           525730243
     43584             1.5       263339                   1           525730243
     47216           1.625       263339                   1           525730243
     50848            1.75       218598               .8301           325059009
     54480           1.875       218492               .8297           325059009
     58112               2       218492               .8297           325059009
 
15 rows selected.
 
SQL>

3.manual shared memory management – 手动管理SGA
手工管理SGA的时候,需要手动设置以下参数的值:
 -db_cache_size
 -java_pool_size
 -large_pool_size
 -log_buffer
 -shared_pool_size
oracle在为这些组件分配内存的时候,以granules为单位。SGA<1G时,granules以4mb为单位;SGA>1G时,granules以16mb为单位

调优涉及的部分视图:
v$memory_resize_ops

v$memory_target_advice
v$sga_current_resize_ops
v$sga_resize_ops

v$sga_dynamic_components

v$sga_dynamic_free_memory

 

编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示