ORACLE

TABLESPACE 조회

from-sh 2022. 10. 11. 15:50
728x90

** sysdba권한의 유저만 가능 (x$kccfe)

 

-- tablespace, datafile, 생성날짜, 용량

set line 300
col tablespace_name for a30
col file_name for a60
col fecrc_tim for a30
select tablespace_name, file_name, fecrc_tim creation_date, bytes/1024/1024/1024 GB
from x$kccfe a, dba_data_files b
where b.file_id = a.indx + 1 order by 1,2;
set line 300
col tablespace_name for a30
col file_name for a60
col fecrc_tim for a30
select tablespace_name, file_name, fecrc_tim creation_date, bytes/1024/1024/1024 GB
from x$kccfe a, dba_data_files bV$ASM_DISKGROUP usable_file_mb negative
where (b.file_id = a.indx + 1) and (tablespace_name = '?')
order by 1,2;


-- tablespace, datafile별 사용 현황

 

SELECT A.TABLESPACE_NAME "tablespace", A.FILE_NAME "file_name",
trunc(((A.BYTES - B.FREE)/1024/1024/1024,2) "used_space",
trunc(B.FREE/1024/1024/1024,2) "free_space",
trunc(A.BYTES/1024/1024/1024,2) "total",
TO_CHAR((B.FREE / A.BYTES * 100) , '999.99')||'%' "free_per"
FROM
(SELECT FILE_ID, TABLESPACE_NAME, FILE_NAME, SUBSTR(FILE_NAME,1,200) FILE_NM,
SUM(BYTES) BYTES 
FROM DBA_DATA_FILES
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
GROUP BY TABLESPACE_NAME,FILE_ID) B
WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME AND A.FILE_ID = B.FILE_ID;


-- tablespace, datafile별 생성 시간

select tablespace_name, status, creation_date, trunc(bytes/1024/1024/1024) GB, NAME
from v$datafile_header
where tablespace_name = '?';



728x90