Oracle查询表空间使用情况

环境:Oracle 11g r2(11.2.0.4)


查看表空间剩余空间

SQL> conn / as sysdba;
Connected.
SQL> select tablespace_name,count(*) as extends,round(sum(bytes) / 1024 / 1024, 2) as MB,sum(blocks) as blocks from dba_free_space group by tablespace_name;

wKioL1WnfYzgtru5AACd-11d6vQ378.jpg


查询表空间使用情况

SQL> SELECT Upper(F.TABLESPACE_NAME) "TABLESPACE_NAME",D.TOT_GROOTTE_MB "TABLESPACE_SIZE(M)",D.TOT_GROOTTE_MB - F.TOTAL_BYTES "USED TABLESPACE(M)",To_char(Round(( D.TOT_GROOTTE_MB - F.TOTAL_BYTES ) / D.TOT_GROOTTE_MB * 100, 2), '990.99')|| '%' "Use rate",F.TOTAL_BYTES "FREE SPACE(M)",F.MAX_BYTES "MAX BLOCK(M)" FROM (SELECT TABLESPACE_NAME,Round(Sum(BYTES)/(1024 * 1024),2) TOTAL_BYTES,Round(Max(BYTES)/(1024 * 1024),2) MAX_BYTES FROM SYS.DBA_FREE_SPACE GROUP  BY TABLESPACE_NAME) F,(SELECT DD.TABLESPACE_NAME,Round(Sum(DD.BYTES)/( 1024 * 1024 ),2) TOT_GROOTTE_MB FROM SYS.DBA_DATA_FILES DD GROUP BY DD.TABLESPACE_NAME) D WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME ORDER  BY 1;

wKioL1WnfeLxzMMFAAE4R7ZJj7o862.jpg


查询表空间的总容量

SQL> select tablespace_name, sum(bytes) / 1024 / 1024 as MB from dba_data_files group by tablespace_name;

wKiom1WnfF2A8nvyAABY5cyrbnk876.jpg


查询表空间使用率

SQL> SELECT total.tablespace_name,Round(total.MB, 2) AS Total_MB,Round(total.MB - free.MB, 2) AS Used_MB,Round(( 1 - free.MB / total.MB ) * 100, 2)|| '%' AS Used_Pct FROM (SELECT tablespace_name,Sum(bytes) / 1024 / 1024 AS MB FROM dba_free_space GROUP  BY tablespace_name) free,(SELECT tablespace_name,Sum(bytes) / 1024 / 1024 AS MB FROM   dba_data_files GROUP BY tablespace_name) total WHERE  free.tablespace_name = total.tablespace_name;

wKiom1WnfJ7jVaOlAAC5P5cfWAo490.jpg

原文来源于网络

你可能感兴趣的:(Oracle查询表空间使用情况)