oracle命中率sql,Oracle 检查命中率的SQL

在数据库启动2小时后,可以通过以下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的权限来运行该查询。此外,拥有众多的空闲缓冲区并不一定是就最佳环境。5%-10% 为最佳。当空闲比例高于25%时,数据缓冲区设置得太大了,可能会浪费资源。

select decode(state,0, 'FREE',1,decode(lrba_seq,0,'AVAILABLE','BEING

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值