• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
james1207

博客园    首页    新随笔    联系   管理    订阅  订阅

ORACLE数据缓冲区DB cache

DB CACHE是以数据块为单位组织的缓冲区,数据库刚刚启动的时候,DB CACHE中几乎没有用户数据的缓冲,当会话访问数据库中的表或索引时,首先会检查DB CACHE中是否存在该数据,如果不存在,就会从数据文件中读取该数据块到DB CACHE中,然后再从DB CACHE中读取该数据。

定位DB CACHE中的数据块是通过散列算法实现的,有一个哈希链结构,缓冲区中正在使用的数据块都在上面。

如果要查找数据块,散列运算算出数据块所在链的链头,从链头的双向链表结构扫描下去,即可找到数据块。

这每一个链,我们称之为BUCKET,其数量在数据库启动后就不会改变,BUCKET数量有参数_DB_BLOCK_HASH_BUCKETS指定。

DB CACHE由BUFFER构成。

DB CHACHE中的算法有两种,LRU算法换进换出buffer,还有哈希。


 

posted @ 2013-08-20 22:06  Class Xman  阅读(417)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3