测试环境有两个db, TEST01(10gR2),TEST02(11gR2)
TEST02是基本上复用了TEST01的参数设置,但是TEST02却报了很多问题,比如查询性能低下。数据库连接不能很快的释放。
今天无意中看到TEST02的sga大小,让我大吃一惊。同样的设置,buffer_cache竟然查了将近20倍。
àTEST01
SQL> show sga
Total System Global Area 6442450944 bytes
Fixed Size 2099752 bytes
Variable Size 3456107992 bytes
Database Buffers 2952790016 bytes
Redo Buffers 31453184 bytes
àTEST02
SQL> show sga
Total System Global Area 6413680640 bytes
Fixed Size 2230768 bytes
Variable Size 6207571472 bytes
Database Buffers 167772160 bytes
Redo Buffers 36106240 bytes
在两个库中db_cache_size都是0,参数都是从10g环境拿过来的。
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_cache_advice string ON
db_cache_size big integer 0
查看advice,也都是开的。
最后手动设置了db_cache_size,和原来的buffer cache基本一致。
关于buffer_cache的advice可以使用如下的sql 来参考。
select size_for_estimate,buffers_for_estimate,estd_physical_read_factor,estd_physical_reads
from v$db_cache_advice
where name='DEFAULT'
AND block_size=(select value from v$parameter where name='db_block_size')
AND advice_status='ON';