본문 바로가기

DB/DBA

Oracle Tablespace 사용량 확인 쿼리


SELECT b.file_name "FILE_NAME", -- DataFile Name
       b.tablespace_name "TABLESPACE_NAME", -- TableSpace Name
       b.bytes / 1024 / 1024 "TOTAL SIZE(MB)", -- 총 Bytes
       ((b.bytes - sum(nvl(a.bytes,0)))) / 1024 / 1024 "USED(MB)", -- 사용한 용량
       (sum(nvl(a.bytes,0))) / 1024 "FREE SIZE(KB)", -- 남은 용량
       (sum(nvl(a.bytes,0)) / (b.bytes)) * 100 "FREE %", -- 남은 %
       round((b.bytes / 1024 / 1024) - ((((b.bytes - sum(nvl(a.bytes,0)))) / 1024 / 1024) + 150)) ForFree,
       'alter database datafile '''||b.file_name||''' resize '||round((((b.bytes - sum(nvl(a.bytes,0)))) / 1024 / 1024) + 150)||'M;' str
FROM  DBA_FREE_SPACE a, DBA_DATA_FILES b
WHERE a.file_id(+) = b.file_id
  AND (b.tablespace_name like 'CSR%' or b.tablespace_name like 'IRIS%') -- CSR이나 IRIS만 선택
GROUP BY b.tablespace_name, b.file_name, b.bytes
ORDER BY b.tablespace_name;

출처 : http://www.oramaster.net