`
Ordier
  • 浏览: 61551 次
  • 性别: 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的区别

    Buffer Cache与Cache的区别在于,Buffer Cache特指Oracle数据库中的数据缓冲区,主要优化的是磁盘I/O,而Cache则涵盖了从硬件层面到操作系统层面的各种缓存机制,包括CPU缓存、文件系统的Page Cache等,其目标是提升...

    oracle性能调优之buffer cache

    Oracle 性能调优之 Buffer Cache Buffer Cache 是 Oracle 中的一种缓存机制,负责将磁盘上的数据 block 读取到内存中,以提高数据库的访问速度。在本文中,我们将详细介绍 Buffer Cache 的工作原理、状态、管理和...

    oracle_buffer_cache深入分析

    ### Oracle Buffer Cache 深入分析 #### 一、Buffer Cache 概念及重要性 Oracle 数据库的核心功能之一就是高效地管理和访问数据。而为了提高数据访问速度,Oracle 引入了一个重要的内存组件——Buffer Cache(数据...

    Oracle buffer cache

    Oracle Buffer Cache 深度解析 Oracle Buffer Cache 是 Oracle 数据库中的一种内存缓存机制,用于提高数据库的性能。Buffer Cache 通过将...通过理解 Buffer Cache 的原理和管理机制,可以更好地优化数据库的性能。

    Oracle 中 Buffer Cache 的研究.pdf

    Oracle数据库中的Buffer Cache是数据库性能优化的关键组件,主要用于缓存数据块,以提高用户访问数据文件数据的效率。Buffer Cache的工作原理和参数设置对于数据库性能有着显著的影响。本文将深入探讨Buffer Cache的...

    深入Buffer Cache 原理

    深入理解Buffer Cache的工作原理对于优化Oracle数据库性能至关重要。通过合理管理和配置Buffer Cache中的各个组成部分,不仅可以减少磁盘I/O操作,还能有效避免热点问题,提高整体系统响应速度。此外,对于常见等待...

    深入学习Buffer cache

    理解Buffer Cache的工作原理和内部结构对于优化Oracle数据库的性能至关重要。通过对Buffer Cache的深入学习,数据库管理员可以更好地监控和调整数据库的内存使用,从而提高并发处理能力,减少I/O延迟,并确保数据...

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

    本文档提供了一项针对 Linux 缓冲区缓存(Buffer Cache)在运行 Oracle OLTP(在线事务处理)工作负载时的性能分析研究。通过一系列测试收集了缓冲区缓存命中率及测试运行时间数据,为理解该系统复杂操作提供了宝贵...

    Oracle 数据缓冲区调优精选

    在Oracle数据库系统中,数据缓冲区(Buffer Cache)是用来存储数据文件中的数据块的内存区域,通过缓存数据,避免频繁地进行磁盘I/O操作,从而提高数据库的性能。本课件“Oracle 数据缓冲区调优精选”由CUUG网络公开...

    ORACLE配置文件优化

    优化INIT.ORA文件意味着根据系统的实际负载和需求调整参数设置,例如内存分配(SGA, PGA)、日志写入频率(LOG_BUFFER)、回滚段大小(ROLLBACK_SEGMENTS)等。通过合理设置,可以减少磁盘I/O,提升查询速度。 2. *...

    oracle性能优化-比较全面

    本文将深入探讨Oracle性能优化的两个关键方面:SGA(System Global Area)的Shared Pool优化和Buffer Cache的优化。 首先,我们关注Shared Pool的调优。Shared Pool是SGA的一个组成部分,它存储了SQL语句、PL/SQL...

    ORACLE多表查询优化

    Oracle 多表查询优化需要考虑多个方面,包括选择合适的表名顺序、使用 Cache Buffer、语句共享、优化查询路径、避免多表连接查询、优化数据统计、选择合适的索引、优化数据库结构、使用 Materialized View、优化...

    oracle数据库的优化

    Oracle数据库的优化是一个复杂而重要的任务,涉及到多个层面的调整以提升系统性能。优化的目标是减少响应时间,提高吞吐量,并确保系统的稳定性和可扩展性。以下将详细阐述几个关键的优化策略。 **监控数据库的性能...

    《Oracle数据库性能优化实践指南》PDF

    在存储和I/O优化方面,本书会探讨数据块设计、表和索引的分区策略、redo log和undo segment管理,以及如何配置Oracle的缓存机制(如Buffer Cache和Redo Log Buffer)以减少磁盘I/O。此外,还会涉及数据库的内存结构...

    oracle数据库性能优化与内部原理解析

    通过优化内存分配,如合理配置共享池(Shared Pool)、数据库缓冲区(Database Buffer Cache)等,可以显著提高数据库的处理能力。 6. 并发和锁定优化:监控和调整数据库的并发机制,优化锁的使用策略和死锁的处理...

    Oracle数据库性能优化.rar

    同时,缓存策略的设置,如Redo Log Buffer、Shared Pool、Buffer Cache等,也需要根据实际负载进行优化。 数据库的物理存储结构,如数据文件、控制文件、重做日志文件的布局,也会影响性能。通过合理规划这些文件的...

    基于Oracle的SQL优化脚本

    8. **监控和分析**:使用Oracle的动态性能视图(如V$SQL、V$SESSION和V$BUFFER_CACHE)进行性能分析,找出慢查询并进行优化。 9. **考虑物理存储结构**:正确配置表空间、数据文件、段和区的大小,以及块和行的布局...

    Oracle数据库内存优化的讨论与配置

    ### Oracle数据库内存优化的深入探讨 #### 引言 在当今的数据驱动时代,Oracle数据库作为企业级应用的核心组件,其性能直接影响着业务的流畅性和效率。尤其在处理大规模数据和高并发请求时,Oracle数据库的内存...

    ORACLE9i_优化设计与系统调整(doc)

    1. V$视图:通过查询V$视图,获取系统状态和性能指标,如V$SESSION、V$SQL、V$BUFFER_CACHE等。 2. AWR(Automatic Workload Repository):提供周期性性能快照,用于分析性能问题和趋势。 3. TKPROF:生成执行...

Global site tag (gtag.js) - Google Analytics