环境: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;
查询表空间使用情况
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;
查询表空间的总容量
SQL> select tablespace_name, sum(bytes) / 1024 / 1024 as MB from dba_data_files group by tablespace_name;
查询表空间使用率
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;
原文来源于网络