DJ메탈짱™의 Free Style

[ORACLE] 테이블스페이스(tablespace) 정보 확인 본문

일(job)/DBMS

[ORACLE] 테이블스페이스(tablespace) 정보 확인

뽀&쏭 2016. 1. 18. 16:27



관리자 계정만이 조회 가능한 것 같네요.... 일반 계정으로는 딕셔너리 테이블이 조회되지가 않아서....
===================================================================
테이블 스페이스의 데이터 파일과 테이블 스페이스의 크기 확인
  
DBA_DATA_FILES 데이터 사전을 이용 하면 됩니다.
  
COL FILE_NAME FORMAT A40
COL TABLESPACE_NAME FORMAT A15
SELECT file_name, tablespace_name, bytes, status FROM DBA_DATA_FILES;
  
◎ FILE_NAME : DATAFILE의 물리적인 위치와 파일명을 알 수 있습니다.
◎ TABLESPACE_NAME : 테이블 스페이스의 이름을 알 수 있습니다.
◎ BYTES : 테이블 스페이스의 크기를 알수 있습니다.
◎ STATUS : 테이블 스페이스의 이용 가능 여부를 알 수 있습니다.

===================================================================
테이블 스페이스별 사용 가능한 공간의 확인

DBA_FREE_SPACE 데이터 사전
  
SELECT tablespace_name, SUM(bytes), MAX(bytes)
                  FROM DBA_FREE_SPACE
                  GROUP BY tablespace_name;


◎ SUM을 사용한 이유는하나의 테이블 스페이스에 분산되어 있는 여유공간을 합한 것이며,
◎ MAX를 사용한 이유는 여유 공간중 가장 큰 공간의 SIZE를 의미 합니다.

===================================================================
데이타 화일에 대한 총 크기와 남아있는 공간, 사용한 용량, 남은 %율
  
DBA_FREE_SPACE, DBA_DATA_FILES 데이터 사전
  
COL FILE_NAME FORMAT A40
COL TABLESPACE_NAME FORMAT A30
SET LINESIZE 150
SELECT b.file_name "FILE_NAME", -- DataFile Name
                  b.tablespace_name "TABLESPACE_NAME", -- TableSpace Name
                  b.bytes / 1024 "TOTAL SIZE(KB)", -- 총 Bytes
                  ((b.bytes - sum(nvl(a.bytes,0)))) / 1024 "USED(KB)", -- 사용한 용량
                  (sum(nvl(a.bytes,0))) / 1024 "FREE SIZE(KB)", -- 남은 용량
                  (sum(nvl(a.bytes,0)) / (b.bytes)) * 100 "FREE %" -- 남은 %
                  FROM DBA_FREE_SPACE a, DBA_DATA_FILES b
                  WHERE a.file_id(+) = b.file_id
                  GROUP BY b.tablespace_name, b.file_name, b.bytes
                  ORDER BY b.tablespace_name;
===================================================================

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