数据库缓存命中率和库缓存命中率区别
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库缓存命中率和库缓存命中率区别
一、Database Buffer cache和Library Cache概念
1、Database Buffer cache:
Database Buffer Cache是SGA的一部分,Oracle利用Buffer Cache来管理data block,Buffer Cache的最终目的就是尽可能的减少磁盘I/O。
Buffer Cache中主要有3大结构用来管理Buffer Cache:
(1)Hash Bucket 和Hash Chain List :Hash Bucket与Hash Chain List用来实现data block的快速定位。
(2)LRU List :挂载有指向具体的free buffer, pinned buffer以及还没有被移动到write list的dirty buffer 等信息。所谓的free buffer就是指没有包含任何数据的buffer,所谓的pinned buffer,就是指当前正在被访问的buffer。
(3)Write(Dirty)List :挂载有指向具体的dirty block的信息。所谓的dirty block,就是指在buffer cache中被修改过但是还没有被写入到磁盘的block。
2、Library Cache:
Library cache是Shared pool的一部分,主要存放shared curosr(SQL)和PLSQL 对象(function,procedure,trigger)的信息,以及这些对象所依赖的table,index,view 等对象的信息。
Library cache需要解决三个问题: