Buffer Cache 的管理过程是怎么样的?

Buffer Cache 的管理过程是怎么样的?
参与10

5同行回答

冯帅冯帅数据库管理员贝壳金服
一直到找到足够的buffer之后,server进程就可以将buffer从数据文件读入buffer CACHE如果读取的block不满足读一致性要求,则server进程需要通过当前block版本和回滚段构造前镜像返回给用户Buffer Cache是存放真正数据的缓冲区,shared Pool里面存放的是sql指令(LC中一次编译,多...显示全部
一直到找到足够的buffer之后,server进程就可以将buffer从数据文件读入buffer CACHE
如果读取的block不满足读一致性要求,则server进程需要通过当前block版本和回滚段构造前镜像返回给用户
Buffer Cache是存放真正数据的缓冲区,shared Pool里面存放的是sql指令(LC中一次编译,多次运行,加快处理性能,cache hit ratio要高),
而buffer cache里面存放真正的查询结果。
BUFFER Cache:由彼此独立的三个子cache(subcaches,也叫主buffer cache:keep,recycle,default)组成支持多种数据块的多缓冲池。
注意system表空间只能用主数据块。收起
融资租赁 · 2015-09-18
浏览1333
冯帅冯帅数据库管理员贝壳金服
–x$kvit表在些不做阐述 有兴趣的可以参照:http://www.ucjmh.com/?p=474SELECT   * FROM x$kvit  WHERE  kvittag=’kcbldq’;–large dirty queue if kcbclw reaches thisSELECT   * FROM x$kvit  WHERE  k...显示全部
–x$kvit表在些不做阐述 有兴趣的可以参照:http://www.ucjmh.com/?p=474
SELECT   * FROM x$kvit  WHERE  kvittag=’kcbldq’;–large dirty queue if kcbclw reaches this
SELECT   * FROM x$kvit  WHERE  kvittag=’kcbfsp’; –Max percentage of LRU list foreground can scan for free收起
融资租赁 · 2015-09-18
浏览1158
冯帅冯帅数据库管理员贝壳金服
不错 这个问题的确要写十几页 我以前也研究过一些 就把以前的一些笔记粘贴一下 你有什么细节想要深入 可以我们再细聊当一个服务器进程需要读数据到buffer cache中时,首先必须判断该数据在buffer 中是否存在,如果存在且可用,则获取该数据,根据lru算法在lru list上移动该block...显示全部
不错 这个问题的确要写十几页 我以前也研究过一些 就把以前的一些笔记粘贴一下 你有什么细节想要深入 可以我们再细聊
当一个服务器进程需要读数据到buffer cache中时,首先必须判断该数据在buffer 中是否存在,
如果存在且可用,则获取该数据,根据lru算法在lru list上移动该block;如果buffer中不存在该数据,则需要从数据文件上获取
(
a. 如果相应的buffer被找到,则该buffer被移到LRU列表的MRU(most recently used)端,这个叫做逻辑读(logical read),因为实际没有I/O产生;
b.如果相应的buffer未被找到,则server process必须从数据文件里读取所需数据块

)
在读取数据之前,server进程需要扫描lru list 寻找free的buffer,
扫描过程中server进程会把发现的所有已经被修改过的buffer移动到checkpoint queue上,这些dirty buffer随后可以被写出到数据文件
如果checkpoint queue超过了阈值,server进程会通知dbwn去写出脏数据;这也是出发dbwr写的一个条件
如果server进程扫描lru超过一个阈值仍然不能找到足够的free buffer ,将停止寻找,转而通知dbwn去写出脏数据,释放空间
同时由于增量检查点的引入,dbwn进程也会主动扫描lru list,将发现的dirty buffer 移动至checkpoint queue,这个扫描也受到一个内部约束收起
融资租赁 · 2015-09-18
浏览1149
凯KK凯KK软件开发工程师凯KK
回复 2# lych528    欢迎发挥。:lol显示全部
回复 2# lych528


   欢迎发挥。:lol收起
软件开发 · 2015-09-17
浏览1092
lych528lych528数据库管理员银行
这问题问的,光写这个东西能写几十页。。。。。。。。显示全部
这问题问的,光写这个东西能写几十页。。。。。。。。收起
互联网服务 · 2015-09-17
浏览1090

提问者

凯KK
软件开发工程师凯KK
擅长领域: 虚拟化服务器云计算

问题来自

相关问题

相关文章

问题状态

  • 发布时间:2015-09-17
  • 关注会员:1 人
  • 问题浏览:5532
  • 最近回答:2015-09-18
  • X社区推广