WEB开发网
开发学院数据库Oracle Oracle中Buffer Cache内存结构及监控 阅读

Oracle中Buffer Cache内存结构及监控

 2007-05-12 12:24:11 来源:WEB开发网   
核心提示: 我们可以看到第一个BH (0x637F0720)的hash: [64be8000,65a5eab4]和第二个BH (0x64BE8000)的hash:[65a5eab4,637f0720],这里记录的就是指向前一个buffer header和后一个buffer header的指针,Orac

我们可以看到第一个BH (0x637F0720)的hash: [64be8000,65a5eab4]和第二个BH (0x64BE8000)的hash:[65a5eab4,637f0720]。这里记录的就是指向前一个buffer header和后一个buffer header的指针。这里,我们看到第一个BH所指向的后一个buffer header的指针是65a5eab4,而第二个BH所指向的前一个buffer header的指针也是65a5eab4,说明这两个buffer header是在同一个hash chain上。同样的,我们还可以看到类似结构的lru、ckptq、fileq,这些都是管理buffer header的一些链表结构。

然后,我们来看我们创建的buffer_test表所对应的buffer header。 首先,我们看到class,表示该buffer header所对应的数据块的类型,具体的值与含义的对应为:1=data block;2=sort block;3=save undo block;4=segment header;5=save undo header;6=free list;7=extent map;8=1st level bmb;9=2nd level bmb;10=3rd level bmb;11=bitmap block;12=bitmap index block;13=unused;14=undo header;15=undo block。我们可以看到与buffer_test表相关buffer header有两个:一个是4(segment header),另一个是1(data block)。

然后,我们看到rdba,这表示buffer header所对应的数据块的地址。我们可以看到class为1的buffer header的rdba为0x0180b00a (6/45066)。说明该数据块的位置是6号文件的45066号block里。018表示数据文件号乘以4,而b00a表示数据块的号。

SQL> select to_number('018','xxx')/4 as file#,
to_number('b00a','xxxx') as block# from dual;
   FILE#   BLOCK#
---------- ----------
     6   45066

上一页  1 2 3 4 5 6 7  下一页

Tags:Oracle Buffer Cache

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接