DBA로 고려해야 할 세 가지 종류의 조각화 가 실제로 있다는 것을 알고 있습니다.
인덱스 클러스터 된 인덱스 (테이블) 조각을 포함하여 SQL 데이터 파일의 단편화. DBCC SHOWCONTIG (SQL 2000) 또는 sys.dm_ db_ index_ physical_ stats (2005+)를 사용하여이를 식별하십시오.
SQL 로그 파일 내에서 VLF 조각화 DBCC LOGINFO를 실행하여 각 SQL 로그 파일에 몇 개의 VLF가 있는지 확인하십시오.
하드 드라이브에있는 데이터베이스 파일의 실제 파일 조각화 Windows에서 "디스크 조각 모음"유틸리티를 사용하여이를 진단하십시오. ( 이 훌륭한 블로그 게시물에서 영감을 얻음 )
인덱스 조각화에 많은주의를 기울이고 있습니다 ( Paul Randall 의이 훌륭한 Serverfault 답변 참조 ). 제 질문의 초점이 아닙니다.
내가 할 수 알고 않도록 자주가 성장하고 정신과에서이 단편화가 가장 자주 발생하기 때문에, 합리적인 예상 데이터 파일 및 로그 크기를 계획하여 데이터베이스가 원래 생성 물리적 조각 (그리고 VLF 조각을),하지만 난 방법에 대한 몇 가지 질문이 수정 일단 식별되면 물리적 조각화 :
우선, 물리적 조각화는 Enterprise SAN에서도 관련이 있습니까? SAN 드라이브에서 Windows 조각 모음을 사용해야합니까, 아니면 SAN 팀에서 내부 조각 모음 유틸리티를 사용해야합니까? SAN 드라이브에서 실행할 때 Windows 도구에서 얻은 조각화 분석도 정확 합니까?
SQL 성능에 대한 물리적 조각화는 얼마나 큰 문제입니까? (이전 질문의 결과를 보류하면서 내부 드라이브 배열을 가정 해 봅시다.) 내부 인덱스 조각화보다 더 큰 거래입니까? 아니면 실제로 같은 종류 의 문제입니까 (드라이브는 순차적 읽기 대신 임의 읽기를 수행해야합니다)
드라이브가 물리적으로 조각화 된 경우 조각 모음 (또는 재구성) 색인이 시간 낭비입니까? 다른 문제를 해결하기 전에 문제를 해결해야합니까?
프로덕션 SQL 상자에서 실제 파일 조각화를 해결하는 가장 좋은 방법은 무엇입니까? SQL 서비스를 끄고 Windows 조각 모음을 실행할 수 있다는 것도 알고 있지만 전체 백업을 수행하고 데이터베이스를 삭제 한 다음 백업에서 빈 드라이브로 복원하는 기술에 대해서도 들었습니다. 후자의 기술이 권장됩니까? 이 같은 백업에서 복원 하는가 도의 내부 인덱스 조각을 제거 처음부터 빌드 인덱스? 아니면 단순히 백업을 수행 할 때와 같은 순서로 페이지 순서를 반환합니까? (필요한 경우 압축을 통해 Quest Lightspeed 백업을 사용하고 있습니다.)
업데이트 : 지금까지 SAN 드라이브 조각 모음 (NO) 여부와 물리적 조각난 드라이브에서 인덱스 조각 모음이 여전히 가치가 있는지에 대한 좋은 답변 (YES).
다른 사람이 실제로 조각 모음을 수행하는 가장 좋은 방법에 대해 고민하고 있습니까? 또는 500GB 정도의 큰 조각난 드라이브를 조각 모음하는 데 걸리는 예상 시간은 얼마입니까? SQL 서버가 다운 될 때가 되었기 때문입니다.
또한 물리적 조각화를 수정하여 수행 한 SQL 성능 개선에 대한 일화 정보가있는 사람도 유용합니다. Mike의 블로그 게시물 은 문제를 발견하는 것에 대해 이야기하지만 어떤 종류의 개선에 대해서는 구체적이지 않습니다.