본문 바로가기

ORACLE

[ORACLE] 테이블당 사용량 구하기

sys or system 계정으로 로그인 한다.

select owner,segment_name,segment_type,sum(bytes)/1024/1024 as MB
from dba_segments
where owner='XXXXX'
GROUP BY owner,segment_name,segment_type

Owner에는 해당 User명을 입력하면 된다.

Table만 현재 사용량을 체크하려면 segment_type = 'TABLE'이라고 Where 절에 추가한다.

Index Size를 체크하려면 segment_type = 'INDEX'라고 Where 절에 추가하면 된다.


참고로 TableSpace의 사용량을 체크하려면 아래 같이 작성하면 된다.

SELECT TO_CHAR(SYSDATE,'YYYYMMDD') , t.tn, t.sizes Tot, (t.sizes-f.sizes) Used, ROUND((t.sizes-f.sizes)/t.sizes*100,2) UsePct,
NVL(TO_NUMBER(f.sizes),0) Free, 100-ROUND((t.sizes-f.sizes)/t.sizes*100,2) FreePct
FROM (SELECT tablespace_name tn, SUM(bytes)/1024/1024 Sizes
FROM dba_data_files
GROUP BY tablespace_name) t,
(SELECT tablespace_name tn, SUM(bytes)/1024/1024 Sizes
FROM SYS.dba_free_space
GROUP BY tablespace_name) f
WHERE t.tn = f.tn(+)
ORDER BY t.tn

'ORACLE' 카테고리의 다른 글

ld: 0711-224 WARNING: Duplicate symbol: p_xargc  (0) 2012.01.04
SQL*Plus 명령어  (0) 2012.01.04
[오라클] 덤프 exp/imp  (0) 2010.08.13
[오라클] 9i 임포트(import) 가이드  (0) 2010.08.13
[오라클] export/import  (0) 2010.08.13