오래 간만에 오라클에 관련된 포스팅을 한다.
 
데이터베이스를 생성하고 테이블 스페이스를 생성하는데 도대체 얼마나 사용하고 있지는 궁금할 때가 많다.
 
툴을 설치해서 보기도 귀찮고 해서 유용한 쿼리를 제공한다.
 

SELECT SUBSTRB(A.TABLESPACE_NAME, 1,16) as TABLESPACE,
       TO_CHAR((A.TOTAL/1024), '999,999,999,990') as "총량(M바이트)",
       TO_CHAR((B.FREE/1024),  '999,999,999,990') as "남은량(M바이트)",
       TO_CHAR((A.TOTAL-B.FREE)/1024,  '999,999,999,990') as "사용량(M바이트)",
       TO_CHAR(A.BLOCKS, '9,999,990') as "총블럭",
       TO_CHAR(C.BLOCKS,  '9,999,990') as "사용블럭",
       TO_CHAR(100*NVL(C.BLOCKS,0)/A.BLOCKS, '999.99') as "사용율%"
FROM (SELECT TABLESPACE_NAME,
             SUM(BYTES)  as TOTAL,
             SUM(BLOCKS) as BLOCKS
      FROM DBA_DATA_FILES
      GROUP BY TABLESPACE_NAME
     ) A,
     (SELECT TABLESPACE_NAME,
             SUM(BYTES) as FREE
      FROM DBA_FREE_SPACE
      GROUP BY TABLESPACE_NAME
     ) B,
     (SELECT TABLESPACE_NAME,
             SUM(BLOCKS) as BLOCKS
      FROM DBA_EXTENTS
      GROUP BY TABLESPACE_NAME
     ) C
WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME(+)
      AND A.TABLESPACE_NAME = C.TABLESPACE_NAME(+)
ORDER BY A.TABLESPACE_NAME ;
 
이 쿼리를 실행해 보면 아주 깔끔한 결과를 볼 수 있다, 쿼리하는데 시간은 좀 걸릴 수 있다.
 
드래그가 안돼서 쿼리가 필요하신 분은 댓글 주세요.. 바로 보내드릴께요.^^




WRITTEN BY
한량이

,