oracle memory_target 跟 sga_target 的区别

本文详细介绍了Oracle数据库中memory_max_target、memory_target、sga_max_size、sga_target等参数的作用及配置方法,并探讨了自动内存管理和自动共享内存管理的设置策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

memory_max_target/memory_target//sga_max_size/sga_target 




1、memory_max_target 就是oracle实例的最大的内存大小


2、memory_target   就是oracle实例实际内存的大小,最大值不能超过memory_max_target


3、 sga_max_size 系统全局区 最大值


4、sga_target  系统全局区 实际值 不能超过 sga_max_size


5、pag_aggregate_target  进程全局区)






如果memory_target=0 表示数据库不启用自动内存管理,那么sga_target(系统全局区) 跟pag_aggregate_target(进程全局区)
各自管理,互不干扰




如果memory_target 大于0 表示数据库启用自动内存管理,相当于sga_target(系统全局区) 跟pag_aggregate_target(进程全局区)
各自管理,互不干扰


如果 sga_target=0 表示数据库不使用 自动共享内存管理  那么
 db_buffer_cache_size,java_pool shared_pool,large_pool,stream_pool 都需要手动设置一个值
 
如果 sga_target大于0 表示数据库使用 自动共享内存管理  那么
 db_buffer_cache_size,java_pool shared_pool,large_pool,stream_pool 不需要设置值,数据库会自动分配,内存使用率高
 
 
 下面来讨论 一下 memory_target 跟sga_target 组合
 
 memory_target=0 && sga_target=0 不是自动共享内存管理  
那么  db_buffer_cache_size,java_pool shared_pool,large_pool,
stream_pool pag_aggregate_target 都需要手动设置一个值

 memory_target=0 && sga_target>0  是自动共享内存管理 那么  
db_buffer_cache_size,java_pool shared_pool,large_pool,stream_pool 可以设置也可以不设置 
pag_aggregate_target必须要设置一个值
sga_target=db_buffer_cache_size+java_pool+shared_pool+stream_pool

 memory_target>0 && sga_target>0  是自动内存管理 那么  sga_target 跟pag_aggregate_target 不需要设定值,
若设定了某个值,也表示 数据库启动的时候sga_target 跟pag_aggregate_target 最小不能低于设定的某个值
如 memory_target=1024 sga_target=800M 表示数据库最少要分配800M 给SGA
memory_target=sga_target+max(pag_aggregate_target,MAXIMUM PGA ALLOCATED)

当使用 dbca 创建默认创建实例的时候 如果系统内存小于4G 那么AMM 启用  大余4G AMM禁用 ASMM 启用,所以一般选择 高级安装




使用大表缓存 并行查询 在 RAC 或者单实例环境
DB_BIG_TABLE_CACHE_PERCENT_TARGET >0 &&PARALLEL_DEGREE_POLICY='AUTO' 或者PARALLEL_DEGREE_POLICY='ADAPTIVE'


使用大表缓存 窜行查询  只适用于单实例
DB_BIG_TABLE_CACHE_PERCENT_TARGET >0




监控 调优 内存管理, 就是说,内存管理设置那个值为最合理
  
  自动内存管理值建议
 select * from v$memory_target_advice order by memory_size;


  MEMORY_SIZE_FACTOR=1 表示当前数据库的内存, 通过ESTD_DB_TIME 来判断设置多大最合适


  
  SGA 设置内存大小是按 颗粒度的整数倍 分配  
   查看数据库的颗粒度
  select * from v$sgainfo 
  自动共享内存管理值建议
  select * from v$sga_target_advice order by sga_size;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值