Maystyle :
Admin : New post
Guestbook
Local
media
Catergories
Recent Articles
Recent Comments
Recent Trackbacks
Calendar
Tag
Archive
Link
Search
 
  왜 DB의 단편화가 일어나는 걸까? 
작성일시 : 2008. 1. 15. 14:54 | 분류 : SQL Server/Kernel

DB 공부하기 1번째 : 선언적 데이터 무결성(Declarative Data Integrity) (http://maystyle.tistory.com/218)
DB
공부하기 2번째 : 트랜잭션 프로세싱 (http://maystyle.tistory.com/219)
DB 공부하기 3번째 : 데이터 파일과 트랜젝션 로그 파일
1. 왜 DB의 단편화가 일어나는 걸까?

데이터베이스는 8KB 크기를 갖는 페이지들의 모음이다.
페이지 관리자는 모든 형식의 페이지들을 할당하고 할당된것을 해제하면서 각 페이지들의 크기를 정리한다. 8개의 페이지를 익스텐트라고 하는데 테이블이 8개 미만의 페이지를 사용할 경우 공간 활성화를 위해 혼합된 크기로 새페이지들을 할당한다.

문제는 이러한 할당 작업과 할당 해제 작업이 지속될 경우 DB가 단편화가 될 수 있다는 사실이다. 실제 SQL 서버의 경우 클러스터드된 인덱스의 순서에 따라 물리 파일에 저장됨으로 그러한 우려는 더욱 커지게 된다.

테이블의 데이터가 얼마나 연속적인지 알아보기 위해서 DBCC Showconfig 명령어를 사용한다. 일반적으로 30%가 넘어가면 Rebuild 한다. 실제 튜닝할때 경우 인덱스가 설정된 칼럼에 대한 쿼리를 함에도 불구하고 Full Scan을 하는경우가 있다. 이럴 경우에는 인덱스 리빌드 및 DBCC INDEXDEFRAG를 통해 성능을 향상시킬 수 있다.

|