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

前言

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

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

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

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

你可能感兴趣的:(oracle,数据库)