본문 바로가기

ORACLE

테이블스페이스의 단편화 현상 점검

- 테이블스페이스의 단편화 현상 점검(참고자료 참조)

- mercury1

QL:M1/SYS>select tablespace_name, total_extents, percent_extents_coalesced
2 from dba_free_space_coalesced
3 where percent_extents_coalesced <> 100;

TABLESPACE_NAME TOTAL_EXTENTS PERCENT_EXTENTS_COALESCED
------------------------------ ------------- -------------------------
TOOLS 145 28.9655172
MOBILE_DAT 173 99.4219653


- frontier

QL:M1/SYS>select tablespace_name, total_extents, percent_extents_coalesced
2 from dba_free_space_coalesced
3 where percent_extents_coalesced <> 100;

TABLESPACE_NAME TOTAL_EXTENTS PERCENT_EXTENTS_COALESCED
------------------------------ ------------- -------------------------
MMS_IDX 10 90


- mercury2

SQL:M2/SYS> select tablespace_name, total_extents, percent_extents_coalesced
2 from dba_free_space_coalesced
3 where percent_extents_coalesced <> 100;


TABLESPACE_NAME TOTAL_EXTENTS PERCENT_EXTENTS_COALESCED
------------------------------ ------------- -------------------------
TOOLS 24 41.6666667
TEMP 15523 10.0560459
USERS 1983 1.26071609

- 참고내용
SQL> select tablespace_name, total_extents, percent_extents_coalesced
from dba_free_space_coalesced
where percent_extents_coalesced <> 100;
tablespace_name total_extents percent_ex
undo 3 33
sample 9 22
* undo 테이브스페이스는 33%, sample 테이블스페이스는 22% 단편화 현상 발생

해결 방법
SQL> alter tablespace sample coalesce;

* PERCENT_EX 컬럼의 값이 100%가 될때가지 "alter tablespace ~ coalesce" 문자을 실행

1. SMON 프로세스가 기본적으로 테이블스페이스의 빈공간을 합병 시켜줌
- PCTINCREASE가 0보다 큰 테이블스페이스에 대해서만 합병을 자동으로 수행
- 그렇지 못한 테이블스페이스는 관리자가 직접 합병 수행
2. 테이블 생성할때 미리 충분한 저장 공간을 할당하는 방법
- INITIAL, NEXT, MINEXTENTS, MAXEXTENTS, PCTINCREASE 값을 충분히 예상후 할당
- 충분한 공간을 할당 받게 되면 데이터가 나누어져 저장되지 않을 뿐더러 삭제한 후
충분한 빈 공간이 생기기 때문
3. 불필요하게 테이블에 할당되어 있는 저정 공간들을 디스크로 반환하는 방법
- SQL> alter table big_emp deallocate unused;

'ORACLE' 카테고리의 다른 글

[ORACLE] 테이블스페이스 용량산정 쿼리  (0) 2010.06.04
[oracle] 모니터링 sql  (0) 2010.05.10
[ORACLE] 점검 목록  (0) 2010.04.14
[ORACLE] 시작과 종료  (0) 2010.04.14
[ORACLE] 오라클 포렌직에 필요한 것들  (0) 2010.04.13