www.Orasql.Com
 
用户名: 密码:  验证码: 注册|找回密码 oracleawen's blog  
 
         当前位置 >> 技术论坛  发表帖子     论坛版块     查找帖子
lru算法和全表扫描-技术论坛||Oracle高手之路—Orasql.Com!
            lru算法和全表扫描
 
发贴人:oracle_awen
oracleawen@gmail.com448315233127.0.0.1
用户级别:管理员
发贴总数:1245
注册时间:2011-05-05 09:23:03
2011-06-24 21:28:21
讲解关于lru算法和全表扫描,谢谢啦! lru -->least recently used,最近很少用的block  
mru-->most recently used,最近很常用的block

db writer进程会b把lru链表上的block写到硬盘,这样当需要从硬盘读其他block到db cache buffer里的时候,就有空间了. 当用户进程执行全表扫描时,会把这个表所占用的块读进缓存放置在lru链表的最后面(而不是在mru最后端),由于全表扫描的块不会使用得很频繁,所以这些缓存块应该尽快被移除以便腾出给频繁使用的块缓存。
你可以基于针对逐个表扫描的块来改变这种默认的用法。为了制定在全表扫描中这些表所暂用的数据块被放置在mru端,你可以在create表或alter表的时候加上cache关键字。你可以为频繁访问的较小的表或比较少增删改动作的大历史数据表来制定这样的准则,以避免以后频繁访问这些表导致增加io

      
 
  
 Orasql.Com|E-Mail:oracleawen@gmail.com|Phone:15271942915|Copyright © 2011|All Rights Reserved|