Oracle数据库FRA空间GB单位监控:使用率百分比计算求助
监控Oracle数据库FRA使用率(GB单位)的正确SQL写法
你想以GB为单位展示Oracle FRA的使用情况,但调整SQL后使用率百分比计算出错。
原MB单位的SQL语句(可正常计算百分比):
col name format a7 clear breaks clear computes select name , round(space_limit / 1024 / 1024) size_mb , round(space_used / 1024 / 1024) used_mb , decode(nvl(space_used,0),0,0,round((space_used/space_limit) * 100)) pct_used from v$recovery_file_dest order by name /
你修改为GB单位后的SQL中,pct_used的计算逻辑有误。实际上,使用率百分比的计算和显示单位(MB/GB)无关,因为space_used和space_limit本身都是字节单位,两者的比值就是使用率,不需要因为显示单位调整乘数。
你之前尝试的*10或*1000都是错误的,正确的做法是保留原始的百分比计算逻辑,只调整size_gb和used_gb的转换即可。
正确的GB单位监控SQL:
col name format a7 clear breaks clear computes select name , round(space_limit / 1024 / 1024 / 1024) size_gb , round(space_used / 1024 / 1024 / 1024) used_gb , decode(nvl(space_used,0),0,0,round((space_used/space_limit) * 100)) pct_used from v$recovery_file_dest order by name /
说明
size_gb和used_gb仅将字节数转换为GB单位用于展示,不影响使用率的计算逻辑pct_used依然通过(space_used/space_limit)*100计算,得到的是0-100之间的百分比数值,符合常规使用率的理解
内容的提问来源于stack exchange,提问作者elbarna
相关产品推荐
相关产品推荐

