[오라클 SQL] 오라클 TableSpace 용량 확인하기


안녕하세요.

 

오늘은 오라클에서 TableSpace 용량을 SQL로 확인하는 방법에 대해서 알려드리려고 합니다.

 

최근에, 프로젝트를 하면서 매번 Database 용량 확인하기 귀찮아서..이참에 각 서버들의 용량을 확인하는 모니터링 프로그램을 만들면서 작성한 SQL문으로 저도 구글링을 하면서 구현한 것이고, 향후에 또 쓸 일이 있으면 참고하려고 포스팅 하게 되었습니다.


 

바로 SQL문을 작성해서 TableSpace 용량을 확인해 보도록 하겠습니다.

 

TableSpace 용량 확인 SQL 문


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

SELECT    A.TABLESPACE_NAME "테이블스페이스명",

           round((sum(A.BYTES) - sum(B.FREE)) / power(1024,2), 2)    "사용공간",

            round(sum(B.FREE)/ power(1024,2), 2)                 "여유 공간",

            round(sum(A.BYTES)/ power(1024,2), 2)                "총크기",

            TO_CHAR( (sum(B.FREE) / sum(A.BYTES) * 100) , '999.99')||'%' "여유공간"

      FROM

       (

         SELECT FILE_ID,

                TABLESPACE_NAME,

                SUM(BYTES) BYTES

           FROM DBA_DATA_FILES

           where 1=1

         GROUP BY FILE_ID,TABLESPACE_NAME,FILE_NAME,SUBSTR(FILE_NAME,1,200)

       ) A,

       (

         SELECT TABLESPACE_NAME,

                FILE_ID,

                SUM(NVL(BYTES,0)) FREE

           FROM DBA_FREE_SPACE

            where 1=1

        GROUP BY TABLESPACE_NAME,FILE_ID

       ) B

      WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME

         AND A.FILE_ID = B.FILE_ID

         group by a.TABLESPACE_NAME

                order by 1

Colored by Color Scripter

cs


실행 결과



 

위와 같이 현재 DatabaseTableSpace 용량이 알맞게 조회된 것을 확인하실 수 있습니다.

 

참고로, 저는 MB 단위로 계산하여 용량을 구했습니다. 만약게 MB 단위가 아닌 GB 단위로 TableSpace 용량을 조회하고 싶으시다면, power(1024, 2) -> power(1024, 3) 으로 변경해 주시면 GB 단위로 변경해서 데이터가 조회되는 것을 확인하실 수 있습니다.

 

감사합니다.


728x90

이 글을 공유하기

댓글

Designed by JB FACTORY