Ask Hoegh中buffer cache和buffer有什么区别

网友投稿 410 2023-12-18

Ask Hoegh中buffer cache和buffer有什么区别

这期内容当中小编将会给大家带来有关Ask Hoegh中buffer cache和buffer有什么区别,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

Ask Hoegh中buffer cache和buffer有什么区别

问:

Oracle数据库的SGA包含db block buffer cacheredo buffer等组件,那么,同样属于内存,buffer cache和buffer有区别吗?

答:首先我们对比一下db block buffer cache和redo buffer的概念和功能。

buffer cache

,其中文名称为缓冲器高速缓冲存储器。按照oracle官方的说法,buffer cache就是一块含有许多数据块的内存区域,而这些数据块主要都是数据文件里的数据块内容的拷贝。

由于buffer cache位于物理文件系统和块设备驱动程序之间,因此,当物理文件系统需要从块设备上读取数据

时,它首先试图从buffer cache中去读。如果命中,则内核就不必在去访问慢速的块设备。否则如果命中失败,也即数据不在buffer cache中,则内核从块设备上读取相应的数据块,并将其在buffer cache中缓存起来,以备下次访问之用。

类似地,但物理文件系统需要向块设备上写数据

时,也是先将数据写到相应的缓冲区中,并将这个缓冲区标记为脏(dirty),然后在将来的某些时候将buffer cache中的数据真正地回写到块设备上,或者将该缓冲区直接丢弃。从而实现减少磁盘写操作的频率。

redo buffer,又叫Redo Log Buffer,是SGA中一段保存数据库修改信息的缓存。这些信息被存储在重做条目(Redo Entry)中,重做条目中包含了由于INSERT、UPDATE、DELETE、CREATE、ALTER或DROP所做的修改操作而需要对数据库重新组织或重做的必须信息。在必要时,重做条目可用于数据库恢复。重做条目是Oracle数据库进程从用户内存中拷贝到Redo Log Buffer中去的。重做条目在内存中是连续相连的。后台进程LGWR负责将Redo Log Buffer中的信息写入到磁盘

上活动的重做日志文件(Redo Log File)或文件组中去的。参数LOG_BUFFER决定了Redo Log Buffer的大小。

接下来,我们在对比一下buffer和cache的概念。

缓存(cache)

是把读取过的数据保存起来,重新读取时若命中(找到需要的数据)就不要去读硬盘了,若没有命中就读硬盘。其中的数据会根据读取频率进行组织,把最频繁读取的内容放在最容易找到的位置,把不再读的内容不断往后排,直至从中删除。

缓冲(buffers)是根据磁盘的读写设计的,把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,从而提高系统性能。linux有一个守护进程定期清空缓冲内容(即写如磁盘),也可以通过sync命令手动清空缓冲。

两者都是RAM中的数据。简单来说,buffer是即将要被写入磁盘的,而cache是被从磁盘中读出来的

从以上两组概念对比,我们就不难理解buffer cache和buffer的区别了。

上述就是小编为大家分享的Ask Hoegh中buffer cache和buffer有什么区别了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:ASM DG Usable_file_MB和Req_mir_free_MB的含义分别是什么
下一篇:ATS调用含nickname存储过程出错的解决方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~