查看DATAVG等使用情况
select name,type,state,total_mb/1024,free_mb/1024, round(free_mb*100/total_mb,0) 空闲比例 from v$asm_diskgroup;
查看某用户使用表空间情况
select sum(t.bytes /1024/1024/1024) 已使用表空间G from dba_segments t where t.owner = 'username';
查看用户下各表使用表空间情况
select t.owner,t.segment_name,t.segment_type,sum(t.bytes /1024/1024/1024) 已使用表空间G from dba_segments t where t.owner = 'username' group by t.owner,t.segment_name,t.segment_type;
查看各表空间使用情况
SELECT Upper(F.TABLESPACE_NAME) "表空间名",
D.TOT_GROOTTE_MB "表空间大小(M)",
(CEIL(D.TOT_GROOTTE_MB - F.TOTAL_BYTES) + 100) "已使用空间(M)",
To_char(Round(( D.TOT_GROOTTE_MB - F.TOTAL_BYTES ) / D.TOT_GROOTTE_MB * 100, 2), '990.99')
|| '%' "使用比",
F.TOTAL_BYTES "空闲空间(M)",
F.MAX_BYTES "最大块(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 AND D.TABLESPACE_NAME NOT IN ('SYSAUX','SYSTEM','TEMP','UNDOTBS1','UNDOTBS2','UNDOTBS3','UNDOTBS4','USERS')
ORDER BY 1;
查看已使用的表空间总和
SELECT sum((CEIL(D.TOT_GROOTTE_MB - F.TOTAL_BYTES) + 100)) "已使用空间(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 AND D.TABLESPACE_NAME NOT IN ('SYSAUX','SYSTEM','TEMP','UNDOTBS1','UNDOTBS2','UNDOTBS3','UNDOTBS4','USERS')
ORDER BY 1;