内存调整之Shared_Pool篇
Shared Pool结构使用来实现SQL共享,减少代码硬解析等,从而提高数据库性能。但是,使用或是管理不当,很可能带来额外的负担或相反的作用。伴随着日常不合理使用的加剧,如数据库中存在大量的硬解析,不停的请求分配Free的Shared Pool内存,Shared Pool会产生很多碎片,从而导致搜索Free List的时间变长。另一方面,不合理的使用也会增加串行的的的Shared Pool Latch的等竞争。这种锁机制也往往成为性能的瓶颈。所以,可能造成这种性能低下的原因包含(数据仓库环境除外,且鼓励使用literal values来代替绑定变量,从而优化器可以更正确的制
内存调整之BufferCache篇
Buffer Cache是缓存从磁盘中读取的信息的,使得Oracle需要的信息能够在内存中找到从而避免了代价昂贵的磁盘I/O。为了实现这个目标,原则上就需要尽量确保访问频率高的信息在buffer中而不被那些很少用到的或是只有一小部分有用而却占用了大量内存的内容冲掉。而且,Buffer Cache的大小也匹配于上面描述的需求的。为了满足上面提到的原则,就不得不了解下Oracle Buffer Cache的管理机制。BufferCache中的内存由WriteList(写链表)和Least Recent Used List(最近最少使用链表)组成。前者包含那些还没有被写道磁盘上的脏缓存,后者包括空闲缓