Oracle 的内存分配逻辑还蛮复杂的,尤其是在搞性能调优时,真能踩不少坑。SGA、PGA这些概念你得搞清楚,分多了浪费,分少了又卡,挺影响体验的。
Oracle 的内存调整,其实说白了就是在不同场景下动态配置内存池的大小。比如并发多了,PGA吃紧,那就要调整;又比如慢查询一堆,看看共享池是不是太小了。
我比较推荐看这篇《优化 Oracle 内存分配与调整策略》,讲得挺实在,从参数设置到实际案例都有提,适合动手调优的朋友。
还有篇《内存结构-oracle PPT》也不错,用图讲结构,层次清晰,像做前端的,图一看就明白是怎么回事。
你要是搞性能压测或生产环境部署,记得把自动内存管理和手动内存管理的区别搞清楚,尤其是参数MEMORY_TARGET
和SGA_TARGET
,配置不对直接拖垮系统。
顺带提一句,如果你对内存调度机制感兴趣,Memcached 的 Slab 机制可以看看,和 Oracle 比挺有意思的。
,Oracle 的内存调优不是一下就能上手的活,建议你先理解几个关键点,对着实际场景一点点试。嗯,慢慢来不焦虑,调对了性能提升还是挺的。