oracle狂热分子 发表于 2011-12-22 08:54

CACHE BUFFERS CHAINS优化思路

<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CACHE BUFFERS CHAINS优化思路</DIV>
<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 数据块在BUFFER CACHE存放是以LINKED LIST的方式存放.基于BLOCK的DBA和CLASS,通过HASH函数来把一个块存放到某个CHAIN上.这些LINKED LIST就是通过CACHE BUFFERS CHAINS来保护的.当需要在某个CHAIN上进行扫描时,首先需要获得CACHE BUFFERS CHAINS.<BR>&nbsp;&nbsp;&nbsp;&nbsp; 一般产生CACHE BUFFERS CHAINS的原因有几个方面:1,BUFFER CACHE太少;2,产生热块.<BR>&nbsp;&nbsp;&nbsp;&nbsp; 由于是CHILDREN LATCH.查询V$LATCH_CHIDREN的ADDR字段,并与X$BH的HLADDR进行连接得出DBAFIL,DBABLK.<BR>&nbsp;&nbsp;&nbsp;&nbsp; 解决方法:1.可以查询V$DB_CACHE_ADVICE以确定当前的BUFFER CACHE大小是否合适,根据建议增加服务器内存;2,A,优化应用程序看是否可以减少全表扫描.B,使用_DB_BLOCK_HASH_BUCKETS来增加BUCKETS数量,以分散块.并相应增加_DB_BLOCK_LRU_LATCHES<BR></DIV>
页: [1]
查看完整版本: CACHE BUFFERS CHAINS优化思路