过着简单,真实的生活,喜欢收藏变形金刚(TFE,G1,SL系列),研究金融股市,KOF98,篮球,学习研究Oracle技术,我并不是一个全职的Oracle DBA,但是对于Oracle技术的热爱和研究,是一个不争的事实,愿意结交广大Oracle技术爱好者!MSN:oracle_kof_tf@hotmail.com
buffer cache部分原理(LRU)
上一篇 /
下一篇 2007-12-12 21:15:19
/ 个人分类:Oracle数据库技术-内存管理
当一个server process到buffer cache访问数据块的时候,首先他要搜索LRU列表的MRU看看他所要找的数据块在不在我们buffer_cache中,如果在就直接访问这个block,此时的命中是在buffer中,如果没有找到所需要的数据,这个时候,就要从数据库文件中读取这个block到buffer cache中来,然后在访问这个block,这个时候server process也会在LRU列表中的空闲空间搜索并寻找一个大小合适的空闲缓存,如果没有搜索到空闲缓存,则从LRU端开始继续搜索可重用的block或者达到查找的最大限制(40%),这个期间如果也发现了LRU列表中还没有移入dirty列表中的脏数据库块则会将这个数据块移入dirty列表中,等待dbwn进程将他们写入数据文件。如果找到空间后,就从磁盘将数据读入到我们所找到的空间缓存中,并将这个缓存块移LRU列表的MRU端。
导入论坛
引用链接
收藏
分享给好友
推荐到圈子
管理
举报
TAG: