--테이블 스페이스 사용량 계산
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;
'데이터베이스 > 오라클' 카테고리의 다른 글
ORACLE / tablespace / 확인 / 수정 / 삭제 / 변경 / 관리 (0) | 2021.09.03 |
---|---|
오라클설치후 환경셋팅 (0) | 2021.09.03 |
오라클 각종 메타데이터 조회 (0) | 2021.09.03 |
컬럼정보조회 (0) | 2021.09.03 |
DATAPUMP 백업 (0) | 2021.09.03 |
댓글