【体系结构】buffer cache的个人理解

1.  Buffer cache

数据库缓冲区,是 Oracle 内存结构 SGA 中的一部分。

2.  Buffer cache 意义

(1) 缓存 dbf 文件。

Buffer 是存在于内存中, dbf 是存在磁盘中。在读取磁盘中数据时, dbf 数据会首先送到 buffer cache 中,以达到缓存的作用。

(2) 构造 cr

在一个会话中,用户删除掉一条数据,但是没有提交。此时改变前的数据会放在 undo 段中。当另一个会话读取同一个块的数据时,发现块内数据被删除了,这时在 buffer cache 中会产生一个新的块,这个新的块就是旧的块产生的,被删除的那条数据由 undo 来补充。这个新的块就叫 cr 块。

所以一条会话删除一条数据没有提交时,另一个会话会看到被删除之前的数据。

3.  数据库写进程( DBWn

buffer cache 中的块被修改之后,这个被修改的块就被称为脏块。 DBWn 负责将 buffer cache 中的脏块写进 dbf 文件中。

DBWn 不是每次更改数据块就会触发。就算触发时,也不是吧所有的块写进 dbf 文件中,而是将一些不常使用的块写进去。它是有一定的触发条件的。

(1) 每过 3 秒触发一次

(2) 当数据要写进 buffer cache 中,发现没有足够的空间的时候

(3) 执行检查点进程时

4 Buffer cache 的重要参数配置

1 )查询 sga 各个组件大小

SQL> select component,current_size/1024/1024 current_M,min_size/1024/1024 min_M from v$sga_dynamic_components;

(3) 修改 buffer cache 大小

SQL> alter system set db_cache_size=20M scope=both;

通常情况下,对于 DB_CACHE_SIZE 的设置,推荐配置为:

整个的 SGA_MAX_SIZE 1/2~2/3



--------------- end -----------------------


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

转载于:http://blog.itpub.net/31529886/viewspace-2641097/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值