hit命中率的解释
1、 Buffer NoWait
这个指标是指在缓冲区获取buffer的未等待⽐率
正常指标范围:
Buffer Nowait率正常指标范围为:99%-100%
计算公式:
Buffer Nowait = (1- buffer busy wait / ssion logical reads) * 100
可以通过SQL查询得到Buffer NoWait命中率
lect round((1 - busy.value/tol.value)*100,2) "Buffer busy NoWait Ratio"
from (lect sum(count) value from v$waitstat
where class in ('data block','gment header','undo header','undo block')) busy,
(lect value from v$sysstat
where name='ssion logical reads') tol;
影响因素:
1. db_block_buffers或db_cache_size等参数
2. 增加表的Freelist参数
3. 使⽤Automatic Segment Storge Management(ASSM)来创建表空间
4. 优化程序使⽤的SQL语句
2 BUFFER hit命中率
go round也就是通常所说⾼速缓存的命中率,这个指标是指通过内存得到访问的数据和所有访问的数据之间的⼀个⽐例。
正常指标范围:
Buffer命中率正常的指标为:90%-100%,但在繁忙运⾏期间(批处理应⽤、数据仓库),Buffer命中率可能低于90%,这是正常的指标。计算公式:
Buffer hit =(1-physical reads cache /(consistent gets from cache + db block gets from cache)) *100
其中:
physical reads cache = physical reads - physical reads direct - physical read direct(LOB)
consistent gets from cache = consistent gets
db block gets from cache = db block gets
服装店陈列可以通过SQL查询数所库性能字典得到数据库⾼速缓存的命中率
lect round((1 - (physical.value - direct.value - lobs.value)/logical.value)*100,2) "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 ='ssion logical reads';
影响因素:
1. Buffer 命中率受 SGA中的data block buffers参数的设置影响
2. 跟 buffer Pool的使⽤⽅法有关
3. 把经常使⽤的⼩表cache在内存中
4. 调优SQL语句,以养活少访问的数据量
3 LIBRARY hit 命中率
就是通常所说的库缓存的命中率。指的是在Oracle执⾏SQL语句的过程中,通过内存直接得到对象的命名空间。
正常指标范围:
Library命中率正常指标范围为:95%-100%
计算公式:
Library hit = sum(pins)/(sum(pins)+sum(reloads)) *100
可以通过SQL查询得到库缓存的命中率
lect round(sum(pins -reloads)/sum(pins)*100,2) "Library Cache Hit Ratio"
from v$librarycache;
影响因素:
1. Library命中率受Oracle SGA中的shared pool参数设置影响
2. 跟应⽤软件的开发有密切的关系,特别是共享SQL的使⽤
4 Execute to Par
这个指标是指数据库的SQL语句执⾏和分析的⽐例,如果要SQL重⽤率⾼,则这个⽐例会很⾼。该值越⾼表⽰⼀次解析后被重复执⾏的次数越多。
正常指标范围:
Execute to Par 越接近⾼(接近100%)越好,但是⼀般
计算公式:
Execute to Par = (1- Pars / Executions) * 100
可以通过SQL查询得到Execute to Par率
lect round((1 - hard.value/total.value)*100,2) "Execute to Par Ratio"
搭配 英文from v$sysstat hard,v$sysstat total
where hard.name ='par count (hard)'
and total.name ='par count (total)';
影响因素:
1. Share_pool_size参数的⼤⼩
2. 最重要的影响因素是应⽤程是否使⽤了绑定变量
如果系统Pars > Executions,就可能出现该⽐率⼩于0的情况。该值<0通常说明shared pool设置或者语句效率存在问题,造成反复解析,repar可
能较严重,或者是可能同snapshot有关,通常说明数据库性能存在问题
a、Execute to Par%是执⾏到解析的度量,最佳情况下,是⼀次解析多次执⾏,最佳的是使⽤软软解析;
b、涉及到的参数主要是OPEN_CURSORS与ssion_cached_cursors,前者定义单个ssion可以打开游标数,后者定义游标可缓存长度
c、通常情况下上述两个参数的使⽤率应尽可能偏离80%,以确保性能及资源充⾜,注意,这2个参数增⼤应考虑是否pga以及sga需要进⼀步调整
Execute to Par,不是硬、软解析的问题,也不是软软解析的问题,是执⾏和解析的问题。⼀次解析多次执⾏,⽆解析,才会使这个指标更好。SQL的执⾏,不是有如下⼏个步骤吗:打开、解析、绑定、执⾏、抓取、关闭。
解析的时候确定执⾏计划,硬解析就是重新⽣成执⾏,软解析是在共享池中找到了执⾏计划,软软解析是让查找执⾏计划的过程更短、更快。但⽆论软解析、还是软软解析,都有解析这个操作。⽆解析就是不再解析,为SQL绑定不同的变量,然后执⾏。这样做的前提就是:1、Session不能断开,2、Session执⾏过解析过的SQL不要关闭。满⾜这两点就可以了。
雾霾天气的治理5 Par CPU to Pares Elapd
解析实际运⾏时间/(解析实际运⾏时间+解析中等待资源时间),越⾼越好。计算公式为:Par CPU to Par Elapsd %= 100*(par time cpu / par time elapd)。即:解析实际运⾏时间/(解析实际运⾏时间+解析中等待资源时间)。如果该⽐率为100%,意味着CPU等待时间为0,没有任何等待。正常指标范围:
Par CPU to Par Elapd 越接近100%越好六级阅读满分多少
计算公式:
Par CPU to Par Elapd =(1-Pars time cpu/Pars time elapd)* 100
可以通过SQL查询得到Par CPU to Par Elapd e率
lect round((1 - cpu.value/total.value)*100,2) "Par CPU to Par Elapd Ratio"lending club
from v$sysstat cpu,v$sysstat total
where cpu.name ='par time cpu'
and total.name ='par time elapd';
影响因素:
1. 如果这个⽐例很低,说明分析过程中CPU等待了其它的资源
-------------------------------------------------------------
6 Redo NoWait
这个指标是指redo缓冲区获取buffer的未等待⽐率
正常指标范围:
go right ahead
Redo Nowait率正常指标范围为:99%-100%
计算公式:
Redo Nowait = (1- redo log space requests / reso entries) * 100
可以通过SQL查询得到Redo NoWait命中率
lect round((1 - waits.value/redos.value)*100,2) "Redo NoWait Ratio"
from v$sysstat waits,v$sysstat redos
where waits.name ='redo log space requests'
and redos.name ='redo entries';
影响因素:
1. Log_buffer_size参数设置过⼩
2. 归档的速度太慢
3. 联机⽇志⽂件太⼩
4. 联机⽇志⽂件放在缓慢的磁盘设备上
7 In-Memory Sort命中率
这个指标是指在内存中完成的排序和硬盘上排序的⽐率
正常指标范围:
In-Memory Sort命中率正常指标范围为:99%-100%
计算公式:
In-Memory Sort hit= (1 -sorts(disk)/(sorts(disk)+sorts(memory))) * 100
可以通过SQL查询得到In-Memory Sort命中率
lect round((1 - disk.value/(disk.value + memory.value))*100,2) "In-Memory Sort"
from v$sysstat disk,v$sysstat memory
where disk.name ='sorts (disk)'
and memory.name ='sorts (memory)';
影响因素:
1. 数据库参数sort_area_size或pga_aggregate_target的⼤⼩
2. 应⽤程序的SQL语句的写法
8 Soft Par
软解析⽐例,⽆需多说的经典指标,数据来源v$sysstat statistics的par count(total)和par count(hard)。合理值>95%
Soft Par %是AWR中另⼀个重要的解析指标,该指标反应了快照时间内软解析次数和总解析次数 (soft+hard 软解析次数+硬解析次数)的⽐值,若该指标很低,那么说明了可能存在剧烈的hard par硬解析,⼤量的硬解析会消耗更多的CPU时间⽚并产⽣解析争⽤(此时可以考虑使⽤cursor_sharing=FORCE);理论上我们总是希望 Soft Par % 接近于100%,但并不是说100%的软解析就是最理想的解析状态,和反复重⽤游标我们可以让解析来的更轻量级,即通俗所说的利⽤会话缓存游标实现的软软解析(soft soft par)。
9 LATCH hit 命中率
Latch是⼀种简单的低级串⾏化机制,⽤于保护系统全局区中的共享。如:保护当前正在⽌访问数据库的⽤户列表,保护描述缓冲区中的块的数据结构。对于服务器或后台进程来说,必须取得伴随的LATCH才能开始操作或查看共享的数据结构,⽽在完成后,⼜必须释放伴随的LATCH,LATCH 的实施和的平台有关,尤其与进程是否需要等待LATCH以及需要等待多长时间有关。
正常指标范围:
LATCH命中率正常指标范围为:99%-100%
计算公式:
Latch hit = (1 - sum(miss + immediate_miss)/sum(gets+immediate_gets) ) * 100
可以通过SQL查询得到LATCH命中率
lect round((1-sum(miss +immediate_miss)/sum(gets + immediate_gets))*100,2) "Latch Hit Ratio" from v$latch;
影响因素:
1. 应⽤程序SQL是否使⽤绑定变量
2. Shared_pool_size参数的设置
10 Non-Par CPU
这个指标是指数据库⽤在⾮分析的过程中CPU的等待了其它的资源
油菜的英文正常指标范围:
Non-Par CPU越接近100%越好
计算公式:
Non-Par CPU = (1- par time cpu / CPU ud by this ssion) * 100
可以通过SQL查询得到Non-Par CPU率
lect round((1 - par.value/total.value)*100,2) "Non-Par CPU Ratio"
new city
from v$sysstat par,v$sysstat total
where par.name ='par time cpu'
and total.name ='CPU ud by this ssion'
space是什么影响因素:
1. 如果这个⽐例很低,说明CPU⽤在分析SQL语句上⾯消耗了很多CPU时间,可能是没有⽤绑定变量