2011-08-29 2 views

답변

4

인덱스의 리프 수준 데이터는 삽입의 특성에 따라 쉽게 조각화 될 수 있으며 SQL Server는 삽입, 업데이트 또는 삭제 중 디스크에서 데이터를 디스크에 배치 할 수 있습니다. 특정 물리적 슬롯에 항상 특정 값을 배치 할 수있는 것은 아니며이 조각화는 검색/검색 작업에 심각한 영향을 줄 수 있습니다.

재구성은 인덱스에 이미 할당 된 페이지 내에서 인덱스의 리프 수준을 논리적 순서로 되돌리려 고 시도합니다.

재구성은 기본적으로 완전히 새로운 색인 사본을 생성하며 조각화를 줄이는 데 훨씬 효과적이지만 시간과 디스크 공간 측면에서 비용이 많이 듭니다. 재 구축을 수행하기 위해 데이터베이스의 여유 공간이 필요합니다. 기존 인덱스 크기의 1.2 배에서 1.5 배 사이입니다. 이는 CREATE INDEX ... WITH DROP_EXISTING과 유사합니다.

온라인으로 다시 작성한다는 것은 새 색인이 작성되는 동안 다른 사용자가 계속해서 조회 할 수 있음을 의미합니다. 이 기능은 모든 버전에서 사용할 수 없습니다 (Enterprise + 만 해당).

사용할 방법은 테이블 크기, 조각화 수준, 조각화를 줄이는 잠재적 이점 및 디스크의 사용 가능한 공간에 따라 결정할 수 있습니다 (사용중인 경우 온라인으로 결정할 추가 결정이 있음). 특정 판). 올라 Hallengren와 미셸 Ufford 당신을 위해 이러한 결정을 내릴 수 있도록 매우 강력한 솔루션이 있습니다

http://ola.hallengren.com/

http://sqlfool.com/2011/06/index-defrag-script-v4-1/

다시 구성에 대한 하나의 좋은 점은 너무 오래 복용하면 당신은 당신을 취소 할 수 있음 이미 완료된 작업을 잃지 않습니다. 재 구축을 취소하면 완료된 모든 항목이 롤백됩니다.

+0

굉장합니다. 감사합니다. 아론. –

관련 문제