Oracle表空间使用率查询SQL

附加临时段
SET LINES 132 PAGES 300
col EXT_PCT for a10
COL con_name FORM A15 HEAD “Container|Name”
COL tablespace_name FORM A25
COL fsm FORM 999,999,999,999 HEAD “Free|Space Meg.”
COL apm FORM 999,999,999,999 HEAD “Alloc|Space Meg.”

COMPUTE SUM OF fsm apm ON REPORT
BREAK ON REPORT ON con_id ON con_name ON tablespace_name

WITH x AS (SELECT c1.con_id, cf1.tablespace_name, SUM(cf1.bytes)/1024/1024 fsm
FROM cdb_free_space cf1
,v c o n t a i n e r s c 1 W H E R E c f 1. c o n i d = c 1. c o n i d G R O U P B Y c 1. c o n i d , c f 1. t a b l e s p a c e n a m e ) , y A S ( S E L E C T c 2. c o n i d , c d . t a b l e s p a c e n a m e , s u m ( d e c o d e ( m a x b y t e s , 0 , b y t e s , m a x b y t e s ) ) / 1024 / 1024 a p m F R O M c d b d a t a f i l e s c d , v containers c1 WHERE cf1.con_id = c1.con_id GROUP BY c1.con_id, cf1.tablespace_name), y AS (SELECT c2.con_id, cd.tablespace_name,sum(decode(maxbytes,0,bytes,maxbytes))/1024/1024 apm FROM cdb_data_files cd ,v containersc1WHEREcf1.conid=c1.conidGROUPBYc1.conid,cf1.tablespacename),yAS(SELECTc2.conid,cd.tablespacename,sum(decode(maxbytes,0,bytes,maxbytes))/1024/1024apmFROMcdbdatafilescd,vcontainers c2
WHERE cd.con_id = c2.con_id
GROUP BY c2.con_id
,cd.tablespace_name)
SELECT x.con_id, v.name con_name, x.tablespace_name, x.fsm, y.apm , trunc(x.fsm/y.apm*100,2)||‘%’ ext_pct
FROM x, y, v$containers v
WHERE x.con_id = y.con_id
AND x.tablespace_name = y.tablespace_name
AND v.con_id = y.con_id
ORDER BY 1,6,2,3;

不附加临时段
set linesize 300;
SELECT B.TABLESPACE_NAME,
ROUND(sum(case when B.MAXBYTES=0 then B.bytes else B.maxbytes end)/1024/1024/1024,0)SUM_GB,
ROUND (SUM(B.bytes/1024/1024/1024)-SUM(A.bytes/1024/1024/1024), 0) used_GB,
ROUND(sum(case when B.MAXBYTES=0 then B.bytes else B.maxbytes end)/1024/1024/1024-(SUM(B.bytes/1024/1024/1024)-SUM(A.bytes/1024/1024/1024)),0) free_GB,
ROUND((SUM(B.bytes/1024/1024/1024)-SUM(A.bytes/1024/1024/1024))/(sum(case when B.MAXBYTES=0 then B.bytes else B.maxbytes end)/1024/1024/1024), 4) * 100 USE_PRECENT
FROM (SELECT TABLESPACE_NAME, FILE_ID, SUM(BYTES) BYTES
FROM DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME, FILE_ID) A,
DBA_DATA_FILES B
WHERE A.FILE_ID(+) = B.FILE_ID
AND A.TABLESPACE_NAME(+) = B.TABLESPACE_NAME
GROUP BY B.TABLESPACE_NAME
ORDER BY USE_PRECENT desc;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

z1blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值