oracle library命中率,oracle命中率查询
发布日期:2021-06-24 15:51:34 浏览次数:2 分类:技术文章

本文共 2052 字,大约阅读时间需要 6 分钟。

在启动2小时后,可以通过以下来测试数据库性能

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的权限来运行该查询。此外,拥有众多的空闲缓冲区并不一定是就最佳环境。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。

转载地址:https://blog.csdn.net/weixin_33642922/article/details/116325503 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:oracle合并sql,Oracle SQL-使用合并功能
下一篇:oracle获取表注释,Oracle获取表名,表注释,字段注释

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月27日 23时36分58秒