AMM:automatic memory management自動內存管理
手動設置
total memory size for this instance
maximum memory size for this instance
數據庫自動分配
total sga size
sga component sizes
instance pga size
individual pga sizes
即讓數據庫完全管理SGA、PGA的大小,而對於管理員只需要設置一個總的大小(memory_target),數據庫會動態的調整SGA、PGA的大小以及其中包含的各個組件大小,如Database buffer cache、Shared pool等等。
1.獲取PGA分配的最大值
select value/1024/1024 || 'M' from v$pgastat where name='maximum PGA allocated';
2.獲取memory_target
計算公式:memory_target = sga_target + max(pga_aggregate_target, maximum PGA allocated)
AMM內存調優
select * from v$memory_target_advice order by memory_size;
當MEMORY_SIZE_FACTOR為 1 時MEMORY_SIZE的值,即一般認為比較合理的MEMORY_TARGET的值。
ASMM:automatic shared memory management自動共享內存管理
手動設置
sga target size
sga maximum size
instance pga target size
數據庫自動設置
sga component sizes
individual pga sizes
即設置一個SGA的目標值以及SGA的最大值,數據庫來動態調整其中的各個組件,如Database buffer cache、Shared pool等等。
SGA_TARGET SGA設置目標值 初始值建議為:(total_mem * 0.7) * 0.8,后續需要定期分析系統做適應性調整
PGA_AGGREGATE_TARGET PGA設置目標值 (total_mem * 0.7) * 0.2,后續需要定期分析系統做適應性調整
SGA_MAX_SIZE SGA設置最大值 初始值建議為:(total_mem * 0.7) * 0.8,后續需要定期分析系統做適應性調整
DB_CACHE_SIZE 數據庫緩存大小建議設置一個最小值,初始為SGA的50%左右,具體值需要根據物理內存大小、SGA大小而確定,后續需要定期分析系統做適應性調整
SHARED_POOL_SIZE 共享池大小 建議設置一個最小值,具體值需要根據物理內存大小、SGA大小而確定,后續需要定期分析系統做適應性調整
MEMORY_TARGET AMM管理設置內存大小 建議值0(11G及以后版本)
使用ASMM並禁用AMM
alter system set sga_target=2048M scope=spfile sid='*';
alter system set pga_aggregate_target=1024M scope=spfile sid='*';
alter system set memory_target=0 scope=spfile sid='*';
alter system set memory_max_target=0 scope=spfile sid='*';
alter system reset memory_max_target scope=spfile sid='*';