关于oracle监控cpu使用率,sga使用率,io吞吐量的查询语句

本文分享了一次数据库性能监控模块的开发经验,详细介绍了如何利用Oracle内部视图v$osstat、v$sysstat、v$sga和v$pgastat来监控CPU使用率、I/O吞吐量和SGA使用情况。作者首次涉足服务器性能监控领域,通过优快云社区大佬的文章指导,成功解决了技术难题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

       今天老大叫我做一个模块,功能用于进行数据库监控,监控的内容包括:CPU使用率、i/O吞吐量、SGA使用率等等。还要监控JAVA应用服务器的CPU使用率、i/O吞吐量、SGA使用率等等(这个内容不在本文讨论范畴)。

       我从业以来,第一次做关于服务器性能的监控,有幸优快云的大佬提供的丰富的解决文章让我能够顺利解决技术层面的难题,在此感谢大家!!你们真的很棒!!

       通过一个下午的奋斗,终于让我解决了这个问题。说真的,本来以为是个简单的工作,深入理解之后才发现没那么简单,要不是大神的帮助,估计这次要凉了。以下为我的解决方案:

select * from v$osstat;  --cpu使用率

--io吞吐量
select sum(decode(name,'physical read IO requests',value,'physical write IO requests',value,0)) as iops,
sum(decode(name,'physical read bytes',value,'physical write bytes',value,0)) / 1024 / 1024 as mbps from v$sysstat
where name in ('physical read IO requests','physical write IO requests','physical read bytes','physical read total bytes',
'physical write bytes','physical write total bytes','physical read total IO requests','physical write total IO requests');
--sga使用情况
select name,total,round(total-free,2) used, round(free,2) free,round((total-free)/total*100,2) pctused from
(select 'SGA' name,(select sum(value/1024/1024) from v$sga) total,
(select sum(bytes/1024/1024) from v$sgastat where name='free memory')free from dual)
union
select name,total,round(used,2)used,round(total-used,2)free,round(used/total*100,2)pctused from (
select 'PGA' name,(select value/1024/1024 total from v$pgastat where name='aggregate PGA target parameter')total,
(select value/1024/1024 used from v$pgastat where name='total PGA allocated')used from dual);

 参考文章:https://www.cnblogs.com/ios9/p/9633259.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值