首页 > 数据库 > Oracle > oracle sql 表空间利用率
SELECT nvl(t.name, 'CDB$ROOT') as DB_NAME,
D.TABLESPACE_NAME,
TOTAL_SPACE,
(SPACE - NVL(FREE_SPACE, 0)),
ROUND((SPACE - NVL(FREE_SPACE, 0)) / TOTAL_SPACE * 100, 2) ratio,
FREE_SPACE
FROM (SELECT TABLESPACE_NAME,
con_id,
ROUND(SUM(BYTES) / (1024 * 1024), 2) SPACE,
ROUND(SUM(decode(maxbytes, 0, bytes, maxbytes)) /
(1024 * 1024),
2) TOTAL_SPACE,
SUM(BLOCKS) BLOCKS
FROM containers(DBA_DATA_FILES)
GROUP BY TABLESPACE_NAME, con_id) D,
(SELECT TABLESPACE_NAME,
con_id,
ROUND(SUM(BYTES) / (1024 * 1024), 2) FREE_SPACE
FROM containers(DBA_FREE_SPACE)
GROUP BY TABLESPACE_NAME, con_id) F,
v$pdbs t
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)
and D.CON_ID = F.CON_ID
and F.con_id = t.CON_ID(+)
UNION ALL
SELECT nvl(t.name, 'CDB$ROOT') as DB_NAME,
D.TABLESPACE_NAME,
SPACE,
USED_SPACE,
ROUND(NVL(USED_SPACE, 0) / SPACE * 100, 2) ratio,
NVL(FREE_SPACE, 0)
FROM (SELECT TABLESPACE_NAME,
con_id,
ROUND(SUM(decode(maxbytes, 0, bytes, maxbytes)) /
(1024 * 1024),
2) SPACE,
SUM(BLOCKS) BLOCKS
FROM containers(DBA_TEMP_FILES)
GROUP BY TABLESPACE_NAME, con_id) D,
(SELECT TABLESPACE_NAME,
con_id,
ROUND(SUM(BYTES_USED) / (1024 * 1024), 2) USED_SPACE,
ROUND(SUM(BYTES_FREE) / (1024 * 1024), 2) FREE_SPACE
FROM containers(V$TEMP_SPACE_HEADER)
GROUP BY TABLESPACE_NAME, con_id) F,
v$pdbs t
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)
and D.CON_ID = F.CON_ID
and F.con_id = t.CON_ID(+)
ORDER BY 1
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/309902/viewspace-2651323/ ,如需转载,请注明出处,否则将追究法律责任。