内存总体策略:优先使用自动内存管理(AMM)或自动共享内存管理(ASMM),在11g及以上可用MEMORY_TARGET/MEMORY_MAX_TARGET统一管理 SGA+PGA;如需手动,再分别设置SGA_TARGET与PGA_AGGREGATE_TARGET。经验上数据库可用内存约占物理内存的1/2~2/3,需为 OS 与其他进程预留充足空间。
SGA 组件要点:
DB_CACHE_SIZE:关注Buffer Cache Hit Ratio,OLTP 场景通常期望≥95%;过低则增大缓冲池。
命中率:select 1-(phys.value/(cur.value+con.value)) from v$sysstat cur, v$sysstat con, v$sysstat phys where cur.name=‘db block gets’ and con.name=‘consistent gets’ and phys.name=‘physical reads’;
库/字典缓存:select sum(pins) executions, sum(reloads) misses, sum(reloads)/sum(pins) from v$librarycache; 与 select 1-sum(getmisses)/sum(gets) from v$rowcache;
日志缓冲:select (req.value*5000)/entries.value from v$sysstat req, v$sysstat entries where req.name=‘redo log space requests’ and entries.name=‘redo entries’;
排序:select name,value from v$sysstat where name in (‘sorts (memory)’,‘sorts (disk)’);
四 I/O 与存储层优化
布局与条带化:按对象类型与访问特征分散 I/O,利用手动或软件条带降低热点与争用;评估文件系统 vs 裸设备在读写特性上的差异,必要时进行多盘并行与控制器/缓存优化。