by 구루비 테이블스페이스 DBA_TABLESPACES DBA_DATA_FILES V$DATAFILE V$TABLESPACE DBA_FREE_SPACE TABLESPACE [2002.01.24]
V$DATAFILE와 V$DATAFILE 이용
SQL> CONN / AS SYSDBA SQL> SELECT status,enabled, t.name,d.name FROM V$DATAFILE d, V$TABLESPACE t WHERE t.ts#=d.ts#; STATUS ENABLED NAME NAME ------- ---------- ------------ ------------------------------------- SYSTEM READ WRITE SYSTEM C:\ORACLE\ORADATA\ORACLE\SYSTEM01.DBF ONLINE READ WRITE RBS C:\ORACLE\ORADATA\ORACLE\RBS01.DBF ONLINE READ WRITE USERS C:\ORACLE\ORADATA\ORACLE\USERS01.DBF ONLINE READ WRITE TEMP C:\ORACLE\ORADATA\ORACLE\TEMP01.DBF ONLINE READ WRITE TOOLS C:\ORACLE\ORADATA\ORACLE\TOOLS01.DBF ONLINE READ WRITE INDX C:\ORACLE\ORADATA\ORACLE\INDX01.DBF ONLINE READ WRITE DRSYS C:\ORACLE\ORADATA\ORACLE\DR01.DBF ONLINE READ WRITE STORM C:\ORACLE\ORADATA\ORACLE\STORM.DBF
DBA_DATA_FILES 데이터 사전을 이용 하면 됩니다.
SQL> COL FILE_NAME FORMAT A40
SQL> COL TABLESPACE_NAME FORMAT A15
SQL> SELECT file_name, tablespace_name, bytes, status
FROM DBA_DATA_FILES;
FILE_NAME TABLESPACE_NAME BYTES STATUS
------------------------------------- --------------- ----------- ------------
C:\ORACLE\ORADATA\ORACLE\SYSTEM01.DBF SYSTEM 248250368 AVAILABLE
C:\ORACLE\ORADATA\ORACLE\RBS01.DBF RBS 545259520 AVAILABLE
C:\ORACLE\ORADATA\ORACLE\USERS01.DBF USERS 113246208 AVAILABLE
C:\ORACLE\ORADATA\ORACLE\TEMP01.DBF TEMP 75497472 AVAILABLE
C:\ORACLE\ORADATA\ORACLE\TOOLS01.DBF TOOLS 12582912 AVAILABLE
C:\ORACLE\ORADATA\ORACLE\INDX01.DBF INDX 60817408 AVAILABLE
C:\ORACLE\ORADATA\ORACLE\DR01.DBF DRSYS 92274688 AVAILABLE
-- FILE_NAME : DATAFILE의 물리적인 위치와 파일명
-- TABLESPACE_NAME : 테이블스페이스의 이름
-- BYTES : 테이블스페이스의 크기
-- STATUS : 테이블스페이스의 이용가능 여부
DBA_FREE_SPACE 데이터 사전 이용
SQL> SELECT tablespace_name, SUM(bytes), MAX(bytes)
FROM DBA_FREE_SPACE
GROUP BY tablespace_name;
TABLESPACE_NAME SUM(BYTES) MAX(BYTES)
--------------- ---------- ----------
DRSYS 88268800 88268800
INDX 60809216 60809216
RBS 524279808 498589696
SYSTEM 65536 65536
TEMP 75489280 74244096
TOOLS 12574720 12574720
USERS 113238016 113238016
-- SUM을 사용한 이유는하나의 테이블스페이스에 분산되어 있는 여유공간을 합한 것이며,
-- MAX를 사용한 이유는 여유 공간중 가장 큰 공간의 SIZE를 의미 합니다.
DBA_FREE_SPACE, DBA_DATA_FILES 데이터 사전 이용
SQL> COL FILE_NAME FORMAT A40 SQL> COL TABLESPACE_NAME FORMAT A30 SQL> SET LINESIZE 150 SQL> 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 FILE_NAME TABLESPACE_NAME TOTAL SIZE(KB) USED(KB) FREE SIZE(KB) FREE % ------------------------------------- --------------- -------------- ------------- ------------ ---------- C:\ORACLE\ORADATA\ORACLE\DR01.DBF DRSYS 90112 3912 86200 95.6587358 C:\ORACLE\ORADATA\ORACLE\INDX01.DBF INDX 59392 8 59384 99.9865302 C:\ORACLE\ORADATA\ORACLE\RBS01.DBF RBS 532480 20488 511992 96.1523438 C:\ORACLE\ORADATA\ORACLE\TEMP01.DBF TEMP 73728 8 73720 99.9891493 C:\ORACLE\ORADATA\ORACLE\TOOLS01.DBF TOOLS 12288 8 12280 99.9348958 C:\ORACLE\ORADATA\ORACLE\USERS01.DBF USERS 110592 8 110584 99.9927662
- 강좌 URL : http://www.gurubee.net/lecture/1099
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.