关于Oracle检查命中率的SQL

发布时间:2016-12-12 00:00:00 编辑:嘉辉 手机版

  如果传统安全厂商只是一味的采取防御等待战术,只是守着手里即将耗尽的资源,不正视市场变化的趋势,不积极探索新的商业模式,很有可能被新的厂商代替正在数据库开动2小时后,能够通功以下SQL来测试数据库机能。下面小编为大家整理了关于Oracle检查命中率的SQL,一起来看看吧:

  1. 慢冲区掷中率:

  缓冲区命中率表现在不须要举行磁盘拜访的情形下在内存构造中觅到常用数据块的频次

  select (1-(sum(decode(name, 'physical reads',value,0))/(sum(decode(name, 'db block gets',value,0))

  +sum(decode(name,'consistent gets',value,0))))) * 100 "Hit Ratio"

  from v$sysstat;

  大于98%为最佳

  2.数据字典缓存命中率:

  数据字典慢存掷中率表现了对于数据字典和其他工具的内存读操纵所占的百分比。

  select (1-(sum(getmisses)/sum(gets))) * 100 "Hit Ratio" from v$rowcache;

  大于98%为最佳

  3.库缓存命中率:

  库缓存命中率表现了对于实践语句和PL/SQL工具的内存读操纵所占的百分比。细致,很高的命中率并没有老是一件功德。

  select Sum(Pins)/(Sum(Pins) + Sum(Reloads)) * 100 "Hit Ratio" from V$LibraryCache;

  大于98%为最好

  4.PGA内存排序掷中率

  主动PGA内存治理简化了分派PGA内存的方式。Oracle动态调解农做区PGA内存的巨细(以SGA内存巨细的20%为基本)。在自动PGA内存治理模式下运转时,一切会话的事情区巨细皆是主动的。真例中运动农作区可用的PGA内存总质主动由SORT_AREA_SIZE或者PGA _ AGGREGATE_ TARGET(首选)始初化参数导出。PGA内存排序率的值应当大于98%。根据始始化参数PGA_AGGREGATE_TARGET(或许用于背后兼容的SORT _AREA _ SIZE)的值,用户排序能够在内存或许在指订的暂时表空间中的磁盘上完成,假如那个始初化参数没有是太高的话。

  select a.value "Disk Sorts",千百度女鞋, b.value "Memory Sorts",round((100*b.value)/decode((a.value+b.value),0,1,(a.value+b.value)),2)"Pct Memory Sorts" from v$sysstat a, v$sysstat b where a.name = 'sorts (disk)'and b.name = 'sorts (memory)';

  5. 闲暇的数据缓冲区的比例

  自您初次开动Oracle数据库的那一天开端,用户们的盘问便启初利用内存,十月妈咪。空闲的记载数除以X$BH表中的忘录总数(便所分派的数据块缓冲区的总数)便失掉那个百分比。同时请细致,您必需以SYS的权限来运转当盘问。别的,具有浩繁的闲暇慢冲区并没有必定是便最佳情况,BB霜。5%-10% 为最好。该闲暇比例高于25%时,数据缓冲区设放得太大了,能够会挥霍资流。

  select decode(state,0, 'FREE',1,decode(lrba_seq,0,'AVAILABLE','BEING USED'),3, 'BEING USED', state) "BLOCK STATUS",count(*) from x$bh group by decode(state,0,'FREE',1,decode(lrba_seq,0,'AVAILABLE','BEING USED'),3, 'BEING USED', state);

  6. 最挥霍内存的前10个语句占一切语句的比例

  正在出有调解的情形下,大少数体系中10个最常利用的SQL语句的拜访质占了整个体系中内存读操纵的50%以上。原节丈量了最影响机能的代码对于整个体系所形成迫害的严峻性,以百分比表现。

  select sum(pct_bufgets) "Percent" from (select rank() over ( order by buffer_gets desc ) as rank_bufgets,to_char(100 * ratio_to_report(buffer_gets) over (),'999.99') pct_bufgets from v$sqlarea ) where rank_bufgets < 11;

  小于5%为最好。

  7.调整滥用磁盘读操作的重要语句

  人发明在出有做调解的情形下,在续大少数的系统中,拜访质占前25位的语句的磁盘读操作将占用整个系统一切磁盘和/或者内存读操做的75%。

  select disk_reads, substr(sql_text,1,4000) from v$sqlarea order by disk_reads desc;

  8.表和取它们相干联的索引应该搁放在差别的物理磁盘上,以即淘汰白件I/O。

  以上测试也能够通功AWR和STATSPACK来检察. 正在剖析成果中,人们起首要望的十项内容:

  1. 主要的5个等候时光(订时势件)

  2. 负载简档(Load profile)

  3. 真例效力面打率(Instance efficiency hit ratios)

  4. 期待时光(Wait events)

  5. 闩锁等候(Latch waits)

  6. 主要的SQL(Top SQL)

  7. 真例运动(Instance activity)

  8. 白件I/0和段统计数据(File I/0 and segement statistics)

  9. 内存分派(Memory allocation)

  10.缓冲区等候(Buffer waits)

本文已影响863
+1
0