본문 바로가기
데이터베이스/오라클

오라클 테이블스페이스 사용량

by cbwstar 2021. 9. 3.
728x90
반응형

--테이블 스페이스 사용량 계산

  SELECT SUM(BYTES) / 1024/1024/1024 AS 전체크기_기가바이트,

         SUM(RESULT) / 1024/1024/1024 AS 사용용량_기가바이트

  FROM

  (

   SELECT E.TABLESPACE_NAME,E.FILE_NAME,E.BYTES,(E.BYTES-SUM(F.BYTES)) RESULT

    FROM DBA_DATA_FILES  E, DBA_FREE_SPACE F

   WHERE E.FILE_ID = F.FILE_ID

   GROUP BY E.TABLESPACE_NAME, E.FILE_NAME, E.BYTES

 );

 

--테이블 스페이스 사용량 기준 생성 스크립트

   SELECT 'create tablespace ' || TABLESPACE_NAME || ' datafile ''' || FILE_NAME || ''' size ' ||

       CASE WHEN USE_BYTES > 0 THEN USE_BYTES/1024/1024 || 'm AUTOEXTEND ON NEXT 30M'

            ELSE BYTES/1024/1024 || 'm AUTOEXTEND ON NEXT 30M'      

       END

       || ' default storage('

       || ' initial          80k'

       || ' next             80k'

       || ' minextents        1'

       || ' maxextents        121'

       || ' pctincrease        80'

       || '  )online ;'

       as table_space

FROM

  (

  SELECT E.TABLESPACE_NAME,E.FILE_NAME,E.BYTES,(E.BYTES-SUM(F.BYTES)) USE_BYTES

    FROM DBA_DATA_FILES E, DBA_FREE_SPACE F

   WHERE E.FILE_ID = F.FILE_ID

   GROUP BY E.TABLESPACE_NAME, E.FILE_NAME, E.BYTES

  ) A;

 

-- 전체 DB 용량

select sum(bytes) from dba_data_files;

select sum(bytes)/1024/1024/1024 from dba_data_files; --GB

 

-- 사용한 DB 용량

select sum(bytes) from dba_segments;

select sum(bytes)/1024/1024/1024 from dba_segments; --GB

 

-- 사용 가능한 DB 용량

select sum(bytes) from dba_free_space

select sum(bytes)/1024/1024/1024 from dba_free_space; --GB

 

/* 테이블스페이별 전체용량 46기가 */

select sum(bytes)/1024/1024/1024 AS 기가

  from dba_data_files --GB

 WHERE TABLESPACE_NAME = 'TS_SMF_DAT'

 

/* 테이블스페이스별 사용용량 44.866기가 */

SELECT sum(bytes)/1024/1024/1024 AS 기가

  FROM dba_segments

 WHERE TABLESPACE_NAME = 'TS_SMF_DAT'

 

/* 유저별 테이블 스페이스 사용용량 */

select owner,tablespace_name,sum(bytes/1024/1024/1024) as 기가

  from dba_segments

  where owner = 'SMARTFARM'

   group by owner,tablespace_name

   order by 2 desc

 

/* 현재 접속한 DB user가 사용한 테이블스페이스 용량과 남은 용량 확인. */

 SELECT USE.TABLESPACE_NAME,

     ROUND( (USE.U_BYTES + FREE.F_BYTES) ,2)AS "할당 GB",

     ROUND(  USE.U_BYTES,2)   AS "사용 GB", USE.U_BLOCKS  AS "사용 BLOCKS",

     ROUND( FREE.F_BYTES,2)  AS "남은 GB", FREE.F_BLOCKS AS "남은 BLOCKS"

FROM

    ( SELECT TABLESPACE_NAME, SUM(bytes)/1024/1024/1024 AS U_BYTES,  SUM(blocks) AS U_BLOCKS

      FROM   USER_TS_QUOTAS 

      GROUP BY TABLESPACE_NAME

     ) USE,

    ( SELECT TABLESPACE_NAME, SUM(bytes)/1024/1024/1024 AS F_BYTES, SUM(blocks) AS F_BLOCKS

        FROM   USER_FREE_SPACE

        GROUP BY TABLESPACE_NAME

     ) FREE

WHERE USE.TABLESPACE_NAME = FREE.TABLESPACE_NAME;

728x90
반응형

댓글



"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

loading