诊断工具
动态视图
v$buffer_pool_statistics
v$buffer_pool
v$db_cache_advice
v$sysstat
v$sesstat
v$system_event
v$session_wait
v$bh
v$cache
Statpack
OEM的调优使用
性能指示标志
减少下面3个指标的信息
Free buffer Inspected(检查):Sp检查LRU中是否有空闲buffer,等待时间.
Free buffer wait(等待):DBWR写数据,sp的等待.
Buffer busy waits:多个sp在使用同一个bock,sp等待.
select name ,value from v$sysstat
where name='free buffer inspected';
select event,total_waits
from v$system_event
where event in
('free buffer waits','buffer busy waits');
查找比较忙的块
select * from v$event_name
where name='buffer busy waits'
buffer Cache的类型:
默认buffer cache:
Keep buffer cache:
Recycle buffer cache:
nk buffer cache:
buffer 竞争等待原因
数据块:
sql查询不精确
使用索引左边相同造成.
v$session_wait提供文件和数据块的频繁等待.
UNdo
非自动的undo表空间管理,需要增加回滚块.
空闲buffer 等待原因
DBWn赶不上脏数据增加.
系统IO比较忙. 换磁盘
IO等待资源如锁. 换磁盘,调整文件分布
buffer cache很小. 增大buffer cache
buffer cache很大,DBWN处理很忙. 开启多个DBWn
计算Cache命中率
Oracle 9I
select 1-(phy.value -lob.value-dir.value)/ses.value "Cache Hit Ratio"
from v$sysstat ses,v$sysstat lob, v$sysstat dir ,v$sysstat phy
where ses.name='session logical reads'
and dir.name='physical reads direct' --直接从磁盘读取
and lob.name='physical reads direct(lob)' --不需要buffer cache中获取
and phy.name='physical reads'; --总的磁盘读取数
Oracle 11g
consistent gets from cache:从buffer cache中获取的block的次数
db block gets from cache: 当前块从buffer cache中请求的次数.
physical reads cache:总的数据块从磁盘到buffer cache的次数.
select name,value
from v$sysstat
where name in('db block gets from cache','consistent gets from cache',
'physical reads cache');
命中率: 1-(('physical reads cache')/('db block gets from cache'+'consistent gets from cache'))
影响命中的因素
数据访问方式影响
1.全表扫描
2.数据或者应用的设计问题
3.大表的随即访问
4.不均匀的缓存命中率分布
命中率不是一切
在命中率调整时候,需要查看v$db_cache_advice和命中率.
多次读取比较大的表或者索引的时候,会降低命中率.可以
将反复使用的数据缓存在中间层或者应用程序中.Oracle全表
扫描信息将block放在LRU尾部.因此可能尽快的出局.
命中率是调优的一部分.
命中率并不决定数据是否需要调优.
分享到:
相关推荐
Oracle数据库管理员(DBA)学习笔记详细记录了Oracle数据库中SQL语句执行的过程,包括用户连接、服务器进程分配、PGA空间、SQL解析、执行计划缓存、shared pool、buffer cache、逻辑IO和物理IO、重做日志等关键知识...
### Oracle 10g 学习笔记:深入理解与配置要点 #### 一、Oracle 10g系统架构与配置参数 Oracle 10g作为一款成熟的关系型数据库管理系统,其内部架构主要由共享内存区域(SGA)和程序全局区(PGA)组成。在学习与...
### Oracle原理学习笔记知识点概述 #### 一、Oracle的工作机制及体系结构 ##### 实例概念 - **定义**: Oracle在运行时会在内存中开辟一个区域,即系统全局区(SGA),用于缓存从磁盘读取的数据。同时,还需要一些...
- **Database Buffer Cache**: 数据库缓冲区,用于缓存数据块。 - **Java Pool**: 存储运行Java代码所需的资源。 - **Streams Pool**: 用于Oracle Streams功能。 - **Large Pool**: 用于存储大型内存对象,如...
以上内容摘自《ORACLE DBA学习笔记》,通过这些知识点的学习,我们可以更好地理解和掌握Oracle数据库管理的关键技术,如限制用户连接数、监控数据库性能等。这对于DBA来说是非常宝贵的资源。希望通过对这些知识点的...
### Oracle 认证学习笔记 #### 第一章 Oracle 数据库体系结构基础 本文将深入探讨 Oracle 9i DBA 认证教程中的基础知识,并重点分析 Oracle 数据库的体系结构及其核心概念。 ### 1. Oracle 数据库系统 Oracle ...
【Oracle性能调优】 Oracle性能优化涉及多个方面,包括SQL语句优化、数据库参数调整、索引策略优化等。通过监控和分析系统性能,可以找出瓶颈并采取相应措施,提高数据库的整体性能。 【安全与权限管理】 Oracle...
本文将基于“Oracle学习笔记”进行深入解析,主要涵盖Oracle的基础概念、数据文件管理、SGA组件、数据库启动与关闭、用户管理、SQL*Plus命令、视图以及同义词。 1. **数据文件管理**: - 数据文件(Datafile)是...
- **Buffer Cache**: 用于缓存数据块。 - **Large Pool**: 为特定操作分配内存,例如并行查询处理。 - **Java Pool**: 存储Java代码和数据。 - **PGA (Program Global Area)**: 程序全局区,为每个会话分配的专用...
学习Oracle11g OCP,首先需要了解Oracle的体系结构及组件,这是数据库管理的基础知识。 Oracle数据库体系结构是建立在实例(instance)和数据库(database)这两个核心概念之上的。实例是一个在服务器上运行的内存和...
### Oracle学习笔记知识点详解 #### 一、Oracle内存结构 Oracle数据库在运行时会占用大量内存,这些内存被划分为不同的区域,每种区域都服务于特定的目的。 ##### 1. SGA (System Global Area) SGA是Oracle实例...
### Oracle DBA 学习笔记知识点总结 #### 一、限制用户访问进程数量 在Oracle数据库管理中,可能会遇到因为连接池的问题导致某些用户的连接数超出预期,甚至达到数据库进程的最大值的情况。为了应对这种情况,可以...
从提供的文件内容中,我们可以提炼出关于Oracle数据库管理以及性能监控和优化的多个知识点。以下是对这些知识点的详细说明: ### Oracle数据库用户访问进程限制 在Oracle数据库中,可以通过配置资源限制来控制用户...
Oracle数据库作为企业级应用的主流数据库管理系统,其11g版本是相当知名并且广泛使用的一个版本。Oracle 11g体系架构涉及许多核心组件和概念,下面将根据文档提供的内容详细解释这些知识点。 首先,Oracle 11g体系...
1. 数据高速缓存(Buffer Cache):这是SGA中最大的部分,用于存储从数据文件中读取的数据块,以减少磁盘I/O操作,提高查询速度。 2. 重做日志缓冲区(Redo Log Buffer):记录对数据库的所有修改,保证事务的ACID...
### 缓冲区缓存(Buffer Cache) 缓冲区缓存是Oracle实例中的一个重要内存结构,用于缓存数据块,以便于快速访问。当应用程序请求数据时,Oracle首先尝试从缓冲区缓存中读取数据,而不是直接从磁盘读取,这样可以...