转: http://blog.itpub.net/26110315/viewspace-730452/ db block gets 与 consistent read gets 对这两个概念一直模模糊糊,弄清楚这两个概念对于理解logical reads,physical read s至关重要。 consistent read get:从buffer cache 中一致性读取(consistent read)的block 的数量。 db block get :从buffer cache 中读取的current mode 的block 的数量。 为了更好的理解这两个概念我们得先来说说buffer cache 的模式。 current mode :current mode get 也叫做 db block get,从buffer cache 中检索出来的数据块的数据是当前模式的。 对当前模式我们可以通过下面这个列子来理解。比如一个未提交的事务,更新了一个数据块中的两条记录, db block gets就 能 够看到这些未提交的记录(因为读取的block是当前状态的)。所以在insert,update,delete 的语句中能够经常看到 db block gets。 consistent mode: consistent read gets 读取的是读一致性的block,因此如果需要读取的数据所在的block 已经被修改 过了,那么将会使用nudo data。比如一个未提交的事务更新了block 中的两条记录,另外一个会话请求该block 中的数据, oracle 将会使用undo data 来提供读一致性。 所以不能看到更新以后的数据。典型情况下,select 语句只会产生读一致性。 扩展: physical read:指定是使用磁盘IO将数据读入data buffer cache。读入data buffer cache 中的blocks 将会被 consistent read gets. 所以总的读取的blocks(logical I/O)等于db block gets + consistent read gets,明白了这一点对于对于理解 buffer cache hit ratio 也很简单了。 select 1-sum(decode(name,'physical reads',value,0))/ (sum(decode(name,'db block gets',value,0))+ sum(decode(name,'consistent gets',value,0))) "Buffer cache hit ratio" from v$sysstat; 另外对于这个buffer cache hit ratio 不要太在意,因为这和系统当前的工作状态有关系的。 特别是在OLAP系统中更是不要为这个hit ratio 所迷惑,因为OLAP系统的特性决定了hit ratio 不可能很高。 下面就是一个伪造hit ratio 的例子,命中率中80%提高到了98%。但是并不是说这个hit ratio 不重要关键是要明白当前系统 的运行状态,系统的类型。改变解决问题的角度不是从hit ratio 入手,而是通过做其他方面的工作来提高这个hit ratio (如果有必要的话). SQL> select 1-sum(decode(name,'physical reads',value,0))/ 2 (sum(decode(name,'db block gets',value,0))+ 3 sum(decode(name,'consistent gets',value,0))) "Buffer cache hit ratio" 4 from v$sysstat; Buffer cache hit ratio ---------------------- .804517936 SQL> ed Wrote file afiedt.buf 1 declare 2 dum dual.dummy%type; 3 begin 4 for i in 1..1000000 loop 5 select dummy into dum 6 from dual; 7 end loop; 8* end; SQL> / PL/SQL procedure successfully completed. SQL> select 1-sum(decode(name,'physical reads',value,0))/ 2 (sum(decode(name,'db block gets',value,0))+ 3 sum(decode(name,'consistent gets',value,0))) "Buffer cache hit ratio" 4 from v$sysstat; Buffer cache hit ratio ---------------------- .982396189
db block gets 与 consistent read gets
来源:这里教程网
时间:2026-03-03 14:13:54
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- Oracle推出全球首个自治操作系统
Oracle推出全球首个自治操作系统
26-03-03 - 还在随便允许手机应用权限?哪些权限不能给?看完你就知道了
还在随便允许手机应用权限?哪些权限不能给?看完你就知道了
26-03-03 - iPhone手机全家桶出炉,一分钟带你回顾从99到1449美元的发展史
iPhone手机全家桶出炉,一分钟带你回顾从99到1449美元的发展史
26-03-03 - Oracle 20c 新特性: SQL 宏支持(SQL Macro)Scalar 和 Table 模式 两种用法
- 数据库软件被注入恶意代码,导致数据库无法启动,ORA-600_16703
数据库软件被注入恶意代码,导致数据库无法启动,ORA-600_16703
26-03-03 - 从零开始入门 K8s| 阿里技术专家详解 K8s 核心概念
从零开始入门 K8s| 阿里技术专家详解 K8s 核心概念
26-03-03 - 为什么很少有手机厂家生产纯白色手机,原来因为这3个原因
为什么很少有手机厂家生产纯白色手机,原来因为这3个原因
26-03-03 - 从快速增长到岌岌可危,雪加电子烟只用了不到半年时间?
从快速增长到岌岌可危,雪加电子烟只用了不到半年时间?
26-03-03 - 前程无忧恐难无忧
前程无忧恐难无忧
26-03-03 - 十岁微博的新焦虑
十岁微博的新焦虑
26-03-03
