`
Ordier
  • 浏览: 61229 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

oracle buffer cache的优化

阅读更多
配置和使用buffer cache

通过以下两种方式调整大小:
V$DB_CACHE_ADVICE / buffer cache hit ratio
1) V$DB_CACHE_ADVICE:
当DB_CACHE_ADVICE=on 时有效。列出各种估计的cache size 和对应的物理读。Size_FACTOR=1表示当前大小。
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';

2) buffer cache hit ratio
低ratio并不能暗示增加cache size可以提高性能。高ratio有时反而会让你误认为cache size已经足够大而满足要求了。比如:重复的扫描一些大表或索引。因为大表的全表扫描往往都是物理读,会人为的降低hit ratio。检查并优化buffer get 较大的sql,Cache 一些经常访问的数据。
Db_cache_size 是针对默认的db_block_size的,对于非标准的block,要特别指定DB_nK_CACHE_SIZE 参数。

考虑Multiple Buffer Pools:
通常只使用default buffer pool就能满足应用。KEEP buffer pool 用来支持经常访问的segment。RECYCLE buffer pool用于不经常的大batch jobs,以防止其不必要的cache消耗。他们都使用LRU规则。通过V$BUFFER_POOL 得到各种pool 信息。
访问大segment的时候可以考虑:
1、 如果是索引,检查其是否selective,否则优化sql
2、 如果已经优化,则可以将其放入recycle cache中,这样就不会影响其他的segment。
3、 或者将一些小的热segment放入keep cache 中,这样可以减少cache buffer miss ratio

KEPP POOL:
如果应用中有的segment (比如小表)经常被访问,所以希望其长期保留在buffer中不被因某种因素ageout,可以将其存储在keep pool中。给KP分配内存,需要设置DB_KEEP_CACHE_SIZE参数,是独立于default buffer的。
大小取决于你想keep的segment,可以通过V$BH查看segment所占用的buffer,或者通过DBA_TABLES.BLOCKS and DBA_TABLES.EMPTY_BLOCKS得到used blocks
The NOCACHE(默认值) clause has no effect on a table in the KEEP cache.( alter table t nocache;)
可以改变segment的storage( buffer_pool keep),然后在dba_table.buffer_pool体现:


查看oracle缓存的命中率(大于90%)

select 1 - ((physical.value - direct.value - lobs.value) / logical.value)

"Buffer Cache Hit Ratio"

from v$sysstat physical,v$sysstat direct,v$sysstat lobs,v$sysstat logical

where physical.name = 'physical reads'

and direct.name='physical reads direct'

and lobs.name='physical reads direct (lob)'

and logical.name='session logical reads';
分享到:
评论

相关推荐

    Oracle Buffer和Cache的区别

    Oracle Buffer和Cache的区别 buffer与cache操作的对象就不一样。 buffer(缓冲)是为了提高内存和硬盘(或其他I/0设备)之间的数据交换的速度而设计的。 cache(缓存)是为了提高cpu和内存之间的数据交换速度而设计...

    oracle性能调优之buffer cache

    oracle性能调优之buffer cache

    oracle_buffer_cache深入分析

    本文首先详细介绍了oracle中buffer cache的概念以及所包含的内存结构。然后结合各个后台进程(包括DBWRn、CKPT、LGWR等)深入介绍了oracle对于buffer cache的管理机制,并详细解释了oracle为什么会采用现在的管理...

    Oracle buffer cache

    buffer cache 深度解析,buffer cache 深度解析,

    深入Buffer Cache 原理

    深入Buffer Cache 原理

    Oracle 中 Buffer Cache 的研究.pdf

    Oracle 中 Buffer Cache 的研究.pdf

    Performance Analysis of the Linux Buffer Cache While Running an Oracle OLTP Workload

    Performance Analysis of the Linux Buffer Cache While Running an Oracle OLTP Workload

    深入学习Buffer cache

    深入学习Buffer cache,oracle 10g 内存结构

    ORACLE SQL性能优化

    ORACLE只对简单的表提供高速缓冲(cache buffering)这个功能并不适用于多表连接查询. 在数据高速缓冲区中存放着Oracle系统最近使用过的数据块(即用户的高速缓冲区),当把数据写入数据库时,它以数据块为单位进行...

    ORACLE9i_优化设计与系统调整

    第一部分 ORACLE系统优化基本知识 23 第1章 ORACLE结构回顾 23 §1.1 Oracle数据库结构 23 §1.1.1 Oracle数据字典 23 §1.1.2 表空间与数据文件 24 §1.1.3 Oracle实例(Instance) 24 §1.2 Oracle文件 26 §1.2.1...

    ORACLE 10G 性能优化

    主要内容:收集性能数据、优化SQL语句和应用程序、调整共享池(Shared Pool)的性能、调整缓冲区高速缓存(Buffer Cache)的性能、调整重做有关的性能、共享(多线程)服务器(MTS)、调整磁盘I/O的性能、调整闩(latch)和...

    ORACLE SQL性能优化系列

    可惜的是ORACLE只对简单的表提供高速缓冲(cache buffering) ,这个功能并不适用于多表连接查询. 数据库管理员必须在init.ora中为这个区域设置合适的参数,当这个内存区域越大,就可以保留更多的语句,当然被共享的可能...

    Oracle优化53解

    可惜的是ORACLE只对简单的表提供高速缓冲(cache buffering) ,这个功能并不适用于多表连接查询。 数据库管理员必须在init.ora中为这个区域设置合适的参数,当这个内存区域越大,就可以保留更多的语句,当然被...

    Oracle Performance Firefighting

    很不错的一本书 有兴趣的可以研究一下 6.oracle buffer cache internal 7.shared pool internal 8.redo management internal 这几章可以研读一下

    Oracle语句优化30个规则详解

     可惜的是ORACLE只对简单的表提供高速缓冲(cache buffering) ,这个功能并不适用于多表连接查询。  数据库管理员必须在init.ora中为这个区域设置合适的参数,当这个内存区域越大,就可以保留更多的语句,当然被...

    Oracle10g优化(鼎力推荐)

    主要内容:收集性能数据、优化SQL语句和应用程序、调整共享池(Shared Pool)的性能、调整缓冲区高速缓存(Buffer Cache)的性能、调整重做有关的性能、共享(多线程)服务器(MTS)、调整磁盘I/O的性能、调整闩(latch)和...

    oracle RMAN 备份恢复总结

    oracle RMAN 备份恢复总结 oracle RMAN 备份恢复总结 oracle RMAN 备份恢复总结

    Oracle四大宝典之四:Oracle 调优入门到精通

    第5章 Buffer cache故障排除与调优 第6章 Redo Buffer与Java池 第7章 SGA管理 第8章 PGA与排序 第9章 SQL调优 第10章 资料收集 第11章 存储空间管理 第12章 聚簇 第13章 索引组织表 第14章 重要的ORACLE特性 第15章 ...

Global site tag (gtag.js) - Google Analytics