什么是buffer cache(buffer cache 结构
buffer:是将block拷贝到内存上面,和block一一对应
buffer header:描述buffer的结构,状态,使用情况等,每个buffer都有一个buffer head 包含:dba(data block address)| BA (buffer address)
buffer bucket:是一种维护一组buffer header,有相关联的表空间,文件号,块号的内存结构
(属于 shared pool)
buffer chain:是一种有关系的buffer header的列表
LRU:用来描述或者说指定如何去去空闲的buffer
RBA(redo byte address):sequence number+block number+ offset
buffer cache的作用
a.减少I/O
b.通过构造CR块,从而提供读一致性功能。
c.通过提供各种lock、latch机制,从而提供多个进程并发访问同一个数据块的功能
总体结构:
其中
Latch ,hash bucket 属于 shared pool
buffer header buffer 属于 buffer cache,(x$bh)
BH的结构:
对应的内部表:
SQL> desc X$BH
Name Null? Type
----------------------------------------- -------- ----------------------------
ADDR RAW(8)
INDX NUMBER
INST_ID NUMBER
HLADDR RAW(8) --latch的内存地址
BLSIZ NUMBER
NXT_HASH RAW(8) --hash 链表
PRV_HASH RAW(8) --hash 链表
NXT_REPL RAW(8)
PRV_REPL RAW(8)
FLAG NUMBER
FLAG2 NUMBER
LOBID NUMBER
RFLAG NUMBER
SFLAG NUMBER
LRU_FLAG NUMBER
TS# NUMBER --表空间
FILE# NUMBER --文件号
DBARFIL NUMBER
DBABLK NUMBER
CLASS NUMBER
STATE NUMB