暂无图片
返回数说广场
萨瓦迪卡
2024-10-18
Oracle数据库在内存中使用缓冲区高速缓存(Buffer Cache)来存储最近或经常访问的数据块。当需要访问一个数据块时,Oracle会按照以下步骤搜索Buffer Cache: 进程根据要访问块的文件号、块号,计算HASH值:首先,会根据数据块的文件ID和块号计算出一个HASH值。 根据HASH值在HASH表中找到HASH Bucket:使用计算出的HASH值来确定这个数据块可能位于哪个HASH Bucket中。 搜索Bucket后的CBC(cache buffers chains缓存缓冲链)链表,查找哪个BH(BLOCK HEADER)是目标BH:在确定的HASH Bucket对应的缓存缓冲链(Cache Buffer Chains)中搜索,以找到目标BLOCK HEADER。 找到目标BH,从中取出Buffer的BA(BLOCK ADDRESS):一旦找到目标BLOCK HEADER,就可以从它那里获取到Buffer的存储地址。 按照BA访问buffer:最后,使用BLOCK ADDRESS来访问实际的buffer。 所以,正确的步骤顺序是: 2 -> 5 -> 1 -> 3 -> 4
0
暂无图片 0
108
分享

评论

热门数说