查看 buffer cache 命中率
来源:互联网 发布:生意参谋数据导出工具 编辑:程序博客网 时间:2024/05/18 01:12
SQL> select name,value from v$sysstat where name in('db block gets','consistent gets','physical reads');
NAME VALUE
---------------------------------------------------------------- ----------
db block gets 932
consistent gets 50535
physical reads 9145
命中率计算公式
Hit Radio=1-physical reads/(db block gets+consistent gets)
SQL> select (1-9145/(50535+932)) from dual;
(1-9145/(50535+932))
--------------------
.822313327
SQL> show parameter db_block_buffers
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_block_buffers integer 0
由于10G中引入了SGA自动管理,所以show parameter 查出来的db_block_buffers为 0
查看当前buffer cache size
SQL> select name ,bytes/1024/1024 Mb from v$sgainfo where name ='Buffer Cache Size';
NAME MB
-------------------------------- ----------
Buffer Cache Size 288 这个buffer cache size 指的是 default + keep +recycle 的和
SQL> select current_size from v$buffer_pool;
CURRENT_SIZE
------------
288 这里 我没有配置 keep pool ,也没有配置 recycle pool
如果一个长期运行的database 长期的 Hit Radio<90%,那么就应该考虑多分配点内存给buffer cache ,同时增加物理内存,或者SQL调优
理想的hit radio 应该在 95%以上
select "db block gets","consistent gets","physical reads",
round(1-"physical reads"/("db block gets"+"consistent gets"),2) as hit
from(
SELECT max(decode(name,'db block gets',value,null)) as "db block gets",
max(decode(name,'consistent gets',value,null)) as "consistent gets",
max(decode(name,'physical reads',value,null)) as "physical reads"
FROM v$sysstat
WHERE name IN ('db block gets', 'consistent gets','physical reads')
);
若hit 小于98%,考虑增大buffer cache。若小于90%,则已经命中率很低了,考虑调优。
DB BUFFER CACHE 命中率介绍
1. 块缓存即数据高速缓冲区。它是SGA区的一个主要部分。用于存放从数据文件读入的数据块。它的大小有INITsid.ORA文件的DB_BLOCK_BUFFERS参数来设置(Oracle9i参数名称为DB_CACHE_SIZE)。这个区内容再分为:
l Dirty Buffers 已经改变但还没有存盘的缓冲区。
l Pinned Buffers 当前正在访问的缓冲区。
l Free Buffers 当前尚未使用的缓冲区。
2. 数据高速缓冲区也有命中率的问题。如果需要的数据能在数据高速缓冲区中找到。就叫命中。下面语句查询命中率相关几个参数值的信息。
select name, value from v$sysstat where name in (‘consistent gets’,’db block gets’,’physical reads’ ) ;
3. 下面要具体介绍一下具体的参数。
官网的:
DB block gets:the number of accesses to the current image of a block
Consistent gets:the number of accesses to a read-consistent image of a block
Physical reads:the number of blocks read from disk
这其中主要涉及到了Oracle读取数据的consistent mode和current mode这两个模式,对于db block gets是在current mode下读取的block数目(单位应该是“块次”,同一个block读取了两个算做2),而consistent gets是在consistent mode下读取的block数目(单位同上)。
current mode下读取数据是为了保证读取到的数据是当前时间点上最新的数据,这样做的目的一般都是为了DML语句的需求,比如需要更新,自然需要知道最新的数据才行;consistent mode呢主要是为了保证Oracle数据一致读的特性,一般都是在select情况下发生,读到的数据可能是一个实际存在的block,也有可能需要根据scn信息以及transaction相关信息以及回滚段中数据来构造。
而physical reads是与logical reads相对的一个概念,两者的区别是读取的数据是从buffer中读取到还是从disk上的db file中取到。通过v$sysstat也可以看到,里面还有db block gets from cache以及consistent gets from cache两项,且这两项的数值与db block gets和consistent gets并不相同且小于后两者。所以不管是db block gets还是consistent gets,都可能出现了physical reads和logical reads两种情况(由buffer中的是否已经存在需要的数据),也即是说,db block gets与consistent gets两者已经构成了一次数据库操作中读取的所有block的总次数了。因此,logical reads自然也就可以通过如下公式算的:logical reads = (db block gets + consistent gets) - physical reads。
由此,自然也就得出了cache命中率的公式:
Hit Ratio = (db block gets + consistent gets - physical reads) / (db block gets + consistent gets)
OR
Hit Ratio = 1 – (physical reads/(db block gets + consistent gets))
PS:
由于在Oracle中,取数据最后都是从Buffer中取,所以每出现一个physical reads必然会出现一次 logical reads,但是这里有一个需要注意的地方,就是当出现一个physical reads后接着会有一个logical reads这里,实际上这里只算了1 block(physical reads)!
- 查看 buffer cache 命中率
- 查看 buffer cache 命中率
- 查看 buffer cache 命中率
- 查看 library cache 命中率
- 查看library cache 命中率
- 查看 library cache 命中率
- 查看 library cache 命中率
- Oracle 查看library cache 解析命中率
- OCP考题解析_043:buffer cache和命中率
- cache命中率
- Linux 查看内存(free buffer cache)
- Linux 查看内存(free buffer cache)
- Linux 查看内存(free buffer cache)
- data dictionary cache 命中率
- oracle libary cache 命中率
- v$buffer_pool_statistics(求buffer命中率)
- Buffer Cache
- buffer cache
- VS2012 + WDK8.0 + Win8调试内核驱动程序(一) .
- 使用npm安装phonegap失败了的看过来(npm国内镜像介绍)
- 文不对题的创业故事——Leo鉴书51
- Linux系统信息查看命令大全
- 第三周作业——冒泡排序和归并排序
- 查看 buffer cache 命中率
- Eclipse快捷键
- 第四周作业
- 大型互联网架构概述
- H264 各profiles用途和特点
- 2013.5.19阿里巴巴实习生笔试题
- 第三周作业 -- 冒泡排序和归并排序
- DAOException
- 我的C++第四周