oracle中的latch: cache buffers chains 与热块
oracle中的latch: cache buffers chains 与热块
ORACLE中的buffer cache
oracle中有各种buffer cache事件,buffer cache简单的说就是缓冲区,主要用于缓冲数据块,buffer cache位于sga中,所以当发现SGA过大时,可以优先考虑是buffer cache中缓存中的数据块过多导致的
Buffer cache的类型通常包括
- default buffer cache
- keep buffer cache
- recycle buffer cache
- nk buffer caches
buffer caceh采用lru算法来淘汰掉过时的数据
latch: cache buffers chains产生的原因
latch: cache buffers chains事件会导致数据库执行卡顿。buffer cache主要缓存的就是数据块,当一个数据块被放入buffer cache中,oracle会同时将数据块对应的buffer header放置到一个hash列表中,任何一个进程想访问或者修改buffer cache中的数据,都需要先获得一个latch,也就是cache buffers chains,当有多个进程同时访问一个数据块时,就会产生latch: cache buffers chains时间。
优化措施
latch: cache buffers chains 本身不可避免,是数据库在高并