Oracle10g data buffer cache的内存结构

buffer cache的内存结构

链表和Hash算法是Oracle实现内部管理常用的方式。

链表是一种数据结构,通过将对象串联在一起,从而构成链表结构,这样如果要修改,删除或查找某个对象的话,
都可以先到链表中去查找,而不必实际地访问物理介质 。

用户发出SQL语句(假设为 update buff_test set col2='cde' where id=3;), 根据SQL语句的执行计划,相关的数
据块被读入buffer cache, Oracle都会抽取数据块的头部,在内存中构建buffer header, 并将这些buffer header
串成链表,而buffer header里面记录的指针就指向buffer cache中的该数据块本身。 于是Oracle在buffer cache
中搜索某个数据块时,就不用buffer cache中找,而是直接扫描链表上该数据块所对应的buffer header, 然后根据
buffer header所记录的指针就能在buffer cache中直接定位该数据块了。


在library cache中,SQL文本转化为ASCII码,然后使用hash算法计算出对应的hash value.
在buffer cache中,Oracle抽取buffer cache的数据块的头部,在内存中构建buffer header, 然后对buffer header
中记录的数据块地址和数据块类型运用hash函数,得到该数据块所属的组号(hash bucket)。


hash bucket      buffer header                  buffer cache   
[0]  ---------&gt  [xxx]           --------&gt 每个buffer header中的指针指向buffer cache中的该block本身。
[1]  ---------&gt  [xxx]--&gt[xxx]   --------&gt (这里是两个指针指向...)
[2]  ---------&gt  [xxx]--&gt[xxx]  
[3]  ---------&gt  [xxx]
[4]  ---------&gt  [xxx]--&gt[xxx]
[5]  ---------&gt  [xxx]--&gt[xxx]--&gt[xxx]  --------&gt (这里是三个指针指向...) 

备注:  上面的buffer header部分的箭头链表被称为hash chain . 


当前台发出SQL语句,Oracle根据执行计划找到符合条件的数据块(信息),然后Oracle会根据对请求的数据
块的地址以及数据块的类型做为参数,应用hash函数运算,得到要找的数据块所处的hash bucket, 也就是决定数据
块在哪条hash chain上,然后Oracle进入该hash chain,从上面所挂的第一个buffer header开始,根据buffer
header 指针找到数据块体,扫描其中数据,确认是否是SQL语句需要的块,如果是,则返回该块所需要的数据;
否则继续向下搜索直到最后一个buffer header为止,如果一直都没有找到,则调用物理I/O, 到磁盘上数据文件
上把该块所含有的内容复制一份到一个可用的buffer里,同样构建该块的buffer header, 然后根据hash值将buffer
header 挂到hash chain上去。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-664577/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/35489/viewspace-664577/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
城市应急指挥系统是智慧城市建设的重要组成部分,旨在提高城市对突发事件的预防和处置能力。系统背景源于自然灾害和事故灾难频发,如汶川地震和日本大地震等,这些事件造成了巨大的人员伤亡和财产损失。随着城市化进程的加快,应急信息化建设面临信息资源分散、管理标准不统一等问题,需要通过统筹管理和技术创新来解决。 系统的设计思路是通过先进的技术手段,如物联网、射频识别、卫星定位等,构建一个具有强大信息感知和通信能力的网络和平台。这将促进不同部门和层次之间的信息共享、交流和整合,提高城市资源的利用效率,满足城市对各种信息的获取和使用需求。在“十二五”期间,应急信息化工作将依托这些技术,实现动态监控、风险管理、预警以及统一指挥调度。 应急指挥系统的建设目标是实现快速有效的应对各种突发事件,保障人民生命财产安全,减少社会危害和经济损失。系统将包括预测预警、模拟演练、辅助决策、态势分析等功能,以及应急值守、预案管理、GIS应用等基本应用。此外,还包括支撑平台的建设,如接警中心、视频会议、统一通信等基础设施。 系统的实施将涉及到应急网络建设、应急指挥、视频监控、卫星通信等多个方面。通过高度集成的系统,建立统一的信息接收和处理平台,实现多渠道接入和融合指挥调度。此外,还包括应急指挥中心基础平台建设、固定和移动应急指挥通信系统建设,以及应急队伍建设,确保能够迅速响应并有效处置各类突发事件。 项目的意义在于,它不仅是提升灾害监测预报水平和预警能力的重要科技支撑,也是实现预防和减轻重大灾害和事故损失的关键。通过实施城市应急指挥系统,可以加强社会管理和公共服务,构建和谐社会,为打造平安城市提供坚实的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值