Oracle - Tablespace의 단편화 현상

Posted 12 26, 2010 16:38, Filed under: DataBase/Oracle

3.7.1 Tablespace의 단편화 현상

많은 데이터가 저장되다보면 때로는 삭제작업이 발생하기도 하고, 입력작업이 발생하기도 합니다.

이러한 작업이 계속 발생하다 보면 처음에는 연속적인 저장 공간들이 조각난 영역으로 나누어지기도 합니다.

이러한 현상을 디스크의 단편화(Fragmentation)현상이라고 합니다. 단편화 현상이 집중적으로 발생하게 되면 결구 연속적인 데이터들을 연속적으로 비어 있는 공간에 저장하지 못하고 여기저기 비어있는 공간에 나누어 저장해야 하는 문제가 발생합니다. , 해당 데이터에 대한 읽기 작업을 할 때 여러군데 나누어져 저장되어 있는 데이터들을 읽어와야 하기 때문에 읽기/쓰기 작업을 할 때 성능이 저하되게 됩니다.

만약, 어떤 입력작업이 발생한다면 비어있는 블록에 여러 개의 행 정보가 나누어져 저장 되게 될 것입니다.

이러한 문제를 해결하는 첫 번째 방법은 미리 비어있는 블록들을 하나의 연속적인 공간으로 합병하는 방법입니다. 아주 작은 빈 공간에 데이터를 저장하는 것 보다 아주 큰 공간에 데이터를 저장하는 것이 데이터를 검색할 때 성능이 향상됩니다.

- 다음은 테이블스페이스의 단편화 현상을 분석하는 방법입니다.

SQL>SELECT TABLESPACE_NAME, TOTAL_EXTENTS, PERCENT_EXTENTS_COALESCED

      FROM DBA_FREE_SPACE_COALESCED

      WHERE PERCENT_EXTENTS_COALESCED <> 100;

TABLESPACE_NAME         TOTAL_EXTENTS   PERCENT_EXTENTS_COALESCED

------------------------------ ------------- ------------------------------------

UNDO                             15                     33

EXAMPLE                           4                     22

# UNDO 테이블스페이스는 33%, EXAMPLE 테이블스페이스는 22%의 단편화 현상이 발생하고 있습니다.

 

- 다음 명령어는 EXAMPLE 테이블스페이스의 연속적인 빈 공간들을 하나의 공간으로 합병 시키는 명령어입니다.

SQL>ALTER TABLESPACE EXAMPLE COALESCE;

SQL>SELECT TABLESPACE_NAME, TOTAL_EXTENTS, PERCENT_EXTENTS_COALESCED

      FROM DBA_FREE_SPACE_COALESCED

      WHERE PERCENT_EXTENTS_COALESCED <> 100;

TABLESPACE_NAME         TOTAL_EXTENTS   PERCENT_EXTENTS_COALESCED

------------------------------ ------------- ------------------------------------

EXAMPLE                             9                     100

# PERCENT_EX 컬럼의 값이 100%가 될 때까지 연속적으로 문장을 실행 하십시오.

 

# 테이블스페이스의 빈 공간에 대한 합병 메커니즘

오라클 데이터베이스의 구조에서 배운 백그라운드 프로세스 중에 SMON 프로세스가 기본적으로 테이블스페이스의 빈 공간을 합병시켜 줍니다. 하지만, 모든 조건의 테이블스페이스에 대해 자동으로 합병되는 건 아닙니다. 그래서, SMON 프로세스는 PCTINCREASE 0보다 큰 테이블스페이스에 대해서만 합병을 자동으로 수행하기 때문에 그렇지 못한 테이블스페이스는 관리자가 직접 합병작업을 수행해야 합니다. 만약, 이러한 수고를 들고 모든 테이블스페이스가 자동으로 합병되려면 PCTINCREASE를 최소 1로 설정해야 합니다.

 

두 번째 방법은 테이블을 생성할 때 미리 충분한 저장공간을 할당하는 방법입니다.

INITIAL, NEXT, MINEXTENTS, MAXEXTENTS, PCTINCREASE 값을 충분히 예상한 다음 할당하게 되면 단편화 현상을 최소화 시킬 수 있습니다. 이유는 충분한 공간을 할당받게 되면 데이터가 나누어져 저장되지 않을 뿐더러 삭제한 후 충분한 빈공간이 생기기 때문입니다.

 

세 번째 방법은, 불필요하게 테이블에 할당되어 있는 저장 공간들을 디스크로 반환하는 방법입니다.

대부분의 마스터 테이블들은 생성될 때 저장공간이 할당되지만 모두 사용되는 것은 아닙니다.

바로 이러한 공간은 불필요하게 낭비되기 때문에 단편화 현상을 촉진시키게 됩니다.

사용되지 않는 공간을 디스크로 반환합니다.

SQL>ALTER TABLE BIG_EMP DEALLOCATE UNUSED;




위의 내용 출처 : 오라클 NEW 대용량 데이터베이스 성능 튜닝


※ 위 내용은, 여러 자료를 참고하거나 제가 주관적으로 정리한 것입니다.
   잘못된 정보나 보완이 필요한 부분을, 댓글 또는 메일로 보내주시면 많은 도움이 되겠습니다.
12 26, 2010 16:38 12 26, 2010 16:38


Trackback URL : http://develop.sunshiny.co.kr/trackback/576

Leave a comment
[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다

« Previous : 1 : ... 324 : 325 : 326 : 327 : 328 : 329 : 330 : 331 : 332 : ... 648 : Next »

Recent Posts

  1. HDFS - Python Encoding 오류 처리
  2. HP - Vertica ROS Container 관련 오류...
  3. HDFS - Hive 실행시 System Time 오류
  4. HP - Vertica 사용자 쿼리 이력 테이블...
  5. Client에서 HDFS 환경의 데이터 처리시...

Recent Comments

  1. 안녕하세요^^ 배그핵
  2. 안녕하세요^^ 도움이 되셨다니, 저... sunshiny
  3. 정말 큰 도움이 되었습니다.. 감사합... 사랑은
  4. 네, 안녕하세요. 댓글 남겨 주셔서... sunshiny
  5. 감사합니다 많은 도움 되었습니다!ㅎㅎ 프리시퀸스

Recent Trackbacks

  1. project management project management %M
  2. cabo villas for rent cabo villas for rent %M
  3. buy my house fast buy my house fast %M
  4. buy my house now buy my house now %M
  5. how to sell a house quickly how to sell a house quickly 3 04

Calendar

«   04 2020   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    

Bookmarks

  1. 위키피디아
  2. MysqlKorea
  3. 오라클 클럽
  4. API - Java
  5. Apache Hadoop API
  6. Apache Software Foundation
  7. HDFS 생태계 솔루션
  8. DNSBL - Spam Database Lookup
  9. Ready System
  10. Solaris Freeware
  11. Linux-Site
  12. 윈디하나의 솔라나라

Site Stats

TOTAL 2902946 HIT
TODAY 339 HIT
YESTERDAY 1312 HIT