首页 > 数据库 >65.oracle中查看缓存命中率

65.oracle中查看缓存命中率

时间:2023-07-28 10:36:10浏览次数:65  
标签:缓存 read consistent reads 65 oracle gets 数据 block

DB Block Gets:请求的数据块在buffer能满足的个数

当前模式块意思就是在操作中正好提取的块数目,而不是在一致性读的情况下而产生的块数。正常的情况下,一个查询提取的块是在查询开始的那个时间点上存在的数据块,当前块是在这个时刻存在的数据块,而不是在这个时间点之前或者之后的数据块数目。

Consistent Gets: Number of times a consistent read was requested for a block.

This is how many blocks you processed in "consistent read" mode. This will include counts of blocks read from the rollback segment in order to roll back a block. This is the mode you read blocks in with a SELECT, for example. Also, when you do a searched UPDATE/DELETE, you read the blocks in consistent read mode and then get the block in current mode to actually do the modification.

(Consistent Gets: 数据请求总数在回滚段Buffer中的数据一致性读所需要的数据块)

这里的概念是在处理你这个操作的时候需要在一致性读状态上处理多少个块,这些块产生的主要原因是因为由于在你查询的过程中,由于其他会话对数据块进行操作,而对所要查询的块有了修改,但是由于我们的查询是在这些修改之前调用的,所以需要对回滚段中的数据块的前映像进行查询,以保证数据的一致性。这样就产 生了一致性读。

Physical Reads:

Total number of data blocks read from disk. This number equals the value of "physical reads direct" plus all reads into buffer cache.

(Physical Reads:实例启动后,从磁盘读到Buffer Cache数据块数量)

就是从磁盘上读取数据块的数量,其产生的主要原因是:

(1) 在数据库高速缓存中不存在这些块

(2) 全表扫描

(3) 磁盘排序

它们三者之间的关系大致可概括为:

逻辑读指的是Oracle从内存读到的数据块数量。一般来说是'consistent gets' + 'db block gets'。当在内存中找不到所需的数据块的话就需要从磁盘中获取,于是就产生了'physical reads'。

Physical Reads通常是我们最关心的,如果这个值很高,说明要从磁盘请求大量的数据到Buffer Cache里,通常意味着系统里存在大量全表扫描的SQL语句,这会影响到数据库的性能,因此尽量避免语句做全表扫描,对于全表扫描的SQL语句,建议增 加相关的索引,优化SQL语句来解决。

关于physical reads ,db block gets 和consistent gets这三个参数之间有一个换算公式:

数据缓冲区的使用命中率=1 - ( physical reads / (db block gets + consistent gets) )。

用以下语句可以查看数据缓冲区的命中率:

SQL>SELECT name, value FROM v$sysstat WHERE name IN ('db block gets', 'consistent gets','physical reads');

查询出来的结果Buffer Cache的命中率应该在90%以上,否则需要增加数据缓冲区的大小。

参考:https://www.cnblogs.com/xqzt/p/4467867.html

 

标签:缓存,read,consistent,reads,65,oracle,gets,数据,block
From: https://www.cnblogs.com/zmc60/p/17586902.html

相关文章

  • Hibernate4的二级缓存
    [color=red][b]Hibernate4.1.4配置二级缓存EHCache步骤[/b][/color][url]http://www.vzhang.net/thread-81-1-1.html[/url]Hibernate4之二级缓存[url]http://zhou137520.iteye.com/blog/1611623[/url]Hibernate4的一些总结[url]http://1194867672-qq-com......
  • 主机名解析过程:Hosts文件 | DNS | windows查看DNS缓存 | 隐患
    摘要目的:本文以linux虚拟机和Windows为例,来介绍一下主机名解析过程主机名解析不完全是靠DNS一、基本概念主机名:比如www.baidu.com、hadoop100等等1.Hosts文件hosts文件是一个文本文件,用来记录IP和Hostname(主机名)的映射关系在Windows和linux里面都有Windows:C:\Wi......
  • 浏览器的缓存机制(强缓存和协商缓存)
    浏览器缓存机制浏览器的缓存机制也就是我们说的HTTP缓存机制,其机制是根据HTTP报文的缓存标识进行的。一个数据请求可以分为发起网络请求、后端处理、浏览器响应三个步骤。浏览器缓存可以帮助我们在第一和第三步骤中优化性能。比如说直接使用缓存而不发起请求,减少客户端和服务器......
  • 【Oracle】 instr函数与substr函数以及自制分割函数
    Oracleinstr函数与substr函数以及自制分割函数instr通常被用来作为判断某个字符串中是否含有执行字符串和将返回结果作为一些数据分割的数据,即有模糊查询like的作用,当返回的查询结果的序号为0的时候就是没有匹配上substr函数就是很简单明了,就是个截取字符函数instr函数通常使......
  • 生产需求:ORACLE ASM磁盘组磁盘添加和替换
    一、背景日常生产过程中,随着时间的推移和数据库数据量的增长,我们会遇到数据库磁盘组空间不足或者存储时间过长需要更换存储的问题,那么这篇文章就给大家介绍一下,对磁盘组进行加盘和替换的操作。如有不足欢迎大家指正。asm磁盘添加前,需要存储工程师在存储上划分好需要添加的盘,然后......
  • 查看oracle数据泵导入导出进度
    查找对应的job_nameQL>colOWNER_NAMEfora30SQL>colJOB_NAMEfora30SQL>colstatefora20SQL>setpagesize999linesize100SQL>selectowner_name,job_name,statefromdba_datapump_jobs;进入交互界面expdptest/testattach=SYS_EXPORT_SCHEMA_01sta......
  • oracle已有表的分表分区优化操作步骤(单表过大)
    第一章、步骤总览0、获取创建表空间DDL、创建表空间(该步骤在将分区放入不同的表空间时采用)1、基于原表A在同一表空问建立临时分区表B2、将原表A数据插入到新建的临时分区表B3、验证分区表查询性能4、将原表A重命名为ATEMP5,指临附分区表日重命店沙示行6、删除原表A......
  • 缓存一致性问题
     更新先更新缓存,再更新数据库存在的问题:如果缓存更新成功,但DB更新失败->DB回滚&&缓存回滚缓存中的数据为脏数据 先更新数据库,再更新缓存存在的问题:线程A与线程B同时操作数据A:线程A抢到CPU资源,更新D......
  • Oracle之TO_DATE函数
    TO_DATE格式(以时间:2007-11-0213:45:25为例)Year:yytwodigits两位年显示值:07yyythreedigits三位年显示值:007yyyyfourdigits四位年显示值:2007Month:mmnumber两位月显示值:11monabbreviated字符集表......
  • 【Oracle】 管道函数pipelined function简单的使用
    Oracle管道函数pipelinedfunction简单的使用如果在函数(function)中加关键字pipelined,就表明这是一个oracle管道函数,其返回值类型必为集合,体现出来的数据结构类似于表,即可以理解成,使用管道函数可以返回一张查询表,可以是单行数据也可以是多行数据,而不是平常函数返回的单行数据......