全表扫描,应用程序设计,随意查询大表,查询对象过于集中。
二、 命中率不是buffer cache性能优化的重中之重:
1. 设计糟糕的数据库可能有99%的命中率
2. 只是性能优化的一部分
3. 等待事件和SQL优化占主导。
有良好命中率的应用程序仍可能有很多不必要的物理读!
A程序:1,000,000逻辑读,10,000物理读,命中率是99%
B程序:100逻辑读,仅有40次物理读,命中率是60%
A和B,谁更优?
三、 增大Cache Size要考虑的条件顺序,切忌命中率一低就开始增加:
1. 等待事件是否调优?
2. SQL语句是否调优?(SQL语句去看Sataspack >报告)
3. 是否有过多的分页错误(undue page faulting)?
4. 先前增加buffer cache的操作是否有效?
(无效就需慎重操作了,分类和并行读不需要缓冲池)
5. 还是低命中率(Low cable hit ratio)。
6. 决定增大缓冲池,且sga_max_size不大,用alter system增加keep,default或recycle。
NOTE:命中率过高就需减少buffer cache。