快速搜索
主页 > 数据库类 > Oracle 技术 >

Oracle中查看表空间使用率的SQL脚本分享

时间:2014-10-31 11:33来源:网络整理 作者:网络 点击:
分享到:
这篇文章主要介绍了Oracle中查看表空间使用率的SQL脚本分享,本文直接给出脚本代码和运行效果图,需要的朋友可以参考下

复制代码 代码如下:

/* Formatted on 2012/5/31 14:51:13 (QP5 v5.185.11230.41888) */
SELECT D.TABLESPACE_NAME,
?????? SPACE || 'M' "SUM_SPACE(M)",
?????? BLOCKS "SUM_BLOCKS",
?????? SPACE - NVL (FREE_SPACE, 0) || 'M' "USED_SPACE(M)",
?????? ROUND ( (1 - NVL (FREE_SPACE, 0) / SPACE) * 100, 2) || '%'
????????? "USED_RATE(%)",
?????? FREE_SPACE || 'M' "FREE_SPACE(M)"
? FROM (? SELECT TABLESPACE_NAME,
???????????????? ROUND (SUM (BYTES) / (1024 * 1024), 2) SPACE,
???????????????? SUM (BLOCKS) BLOCKS
??????????? FROM DBA_DATA_FILES
??????? GROUP BY TABLESPACE_NAME) D,
?????? (? SELECT TABLESPACE_NAME,
???????????????? ROUND (SUM (BYTES) / (1024 * 1024), 2) FREE_SPACE
??????????? FROM DBA_FREE_SPACE
??????? GROUP BY TABLESPACE_NAME) F
?WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)
UNION ALL?????????????????????????????????????????????????????????? --如果有临时表空间
SELECT D.TABLESPACE_NAME,
?????? SPACE || 'M' "SUM_SPACE(M)",
?????? BLOCKS SUM_BLOCKS,
?????? USED_SPACE || 'M' "USED_SPACE(M)",
?????? ROUND (NVL (USED_SPACE, 0) / SPACE * 100, 2) || '%' "USED_RATE(%)",
?????? NVL (FREE_SPACE, 0) || 'M' "FREE_SPACE(M)"
? FROM (? SELECT TABLESPACE_NAME,
???????????????? ROUND (SUM (BYTES) / (1024 * 1024), 2) SPACE,
???????????????? SUM (BLOCKS) BLOCKS
??????????? FROM DBA_TEMP_FILES
??????? GROUP BY TABLESPACE_NAME) D,
?????? (? SELECT TABLESPACE_NAME,
???????????????? ROUND (SUM (BYTES_USED) / (1024 * 1024), 2) USED_SPACE,
???????????????? ROUND (SUM (BYTES_FREE) / (1024 * 1024), 2) FREE_SPACE
??????????? FROM V$TEMP_SPACE_HEADER
??????? GROUP BY TABLESPACE_NAME) F
?WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+)
ORDER BY 1;

效果如下:

精彩图集

赞助商链接