SQLServer 데이터베이스를 조각 모음해야 할 시점을 어떻게 알 수 있습니까?


9

SQLServer 데이터베이스 조각화 / 성능 롤오프를 측정하고 SQLServer 데이터베이스 테이블 조각 모음시기를 결정하는 가장 좋은 방법은 무엇입니까?

유용한 지표가 무엇인지, 그리고 조각 모음을 트리거해야하는 성능 저하 수준을 배우는 데 가장 관심이 있습니다.

답변:


22

어떤 메트릭을 볼지에 대해 많은 의견이 일치하지 않기 때문에 이에 대한 흥미로운 답변이있을 것이라고 확신합니다. 저는 DBCC INDEXDEFRAG, SHOWCONTIG을 작성하고 2005 년을위한 대체 제품을 디자인하고 Books Online 컨텐츠를 작성했습니다. 그래서 제가 여러분에게 의견을 제시하고 Books Online과 2005 년 유지 관리 계획 마법사에서 선택한 숫자를 설명하겠습니다.

인덱스 조각화를 살펴 보는 가장 좋은 두 가지 메트릭은 다음과 같습니다. 1) (2005) 평균 조각화 백분율 / (2000) 논리적 스캔 조각화 2) (2005) 평균 페이지 밀도 / (2000) 페이지 당 사용 가능한 평균 바이트

이는 클러스터 및 비 클러스터형 인덱스에 동일하게 적용됩니다.

1은 얼마나 많은 논리적 조각이 있는지 측정하고 있습니다. 인덱스의 리프 수준에서 페이지의 논리적 순서가 실제 순서와 일치하지 않는 경우입니다. 이렇게하면 범위 검색 중에 스토리지 엔진이 효율적인 미리 읽기를 수행하지 못합니다. 따라서 # 1은 싱글 톤 조회 성능이 아니라 범위 스캔 성능에 영향을줍니다.

2는 인덱스의 리프 레벨에서 각 페이지에 낭비되는 공간을 측정합니다. 낭비 된 공간은 더 많은 페이지를 사용하여 레코드를 저장한다는 것을 의미합니다. 즉, 인덱스를 저장할 디스크 공간이 더 많고 인덱스를 읽을 IO가 더 많으며 페이지를 버퍼 풀의 메모리에 저장하기 위해 더 많은 메모리가 필요합니다.

임계 값? 내 일반적인 경험 법칙은 10 % 미만의 조각화입니다. 10-30 %, ALTER INDEX ... REORGANIZE (2005) / DBCC INDEXDEFRAG (2000)를 수행하십시오. 30 % 이상, ALTER INDEX ... REBUILD (2005) / DBCC DBREINDEX (2000)를 수행하십시오. 이들에 대한 완전한 일반화 및 임계 값입니다 당신이 달라집니다.

임계 값을 찾으려면 조각화 수준에 대한 워크로드 성능을 추적하고 성능 저하가 너무 큰시기를 결정하십시오. 이 시점에서 조각화 문제를 해결해야합니다. 조각화로 생활하는 것과 조각을 제거하는 데 필요한 리소스를 사용하는 것 사이에는 균형 잡힌 행동이 있습니다.

필자는 조각화를 제거하는 두 가지 방법, 조각화를 완화하고 조각 모음을 줄이려고 노력하는 FILLFACTOR / PADINDEX와 같은 것들, 조각화를 완화하기위한 스키마 / 액세스 패턴 변경 또는 다른 종류의 유지 관리 계획 간의 상충 관계에 대해서는 다루지 않았습니다. .

아, btw, 나는 항상 1000 페이지 미만의 색인에서 조각화를 신경 쓰지 않는 것이 좋습니다. 인덱스가 메모리 상주 일 가능성이 높기 때문입니다 (사람들이 숫자를 요청하고 하나를 생각해 내야했기 때문).

데이터베이스 유지 관리에 대한 TechNet Magazine 기사 ( http://technet.microsoft.com/en-us/magazine/cc671165.aspx )에 대한 자세한 내용 은 2000 년 백서의 인덱스 조각 모음 모범 사례에 대한 백서를 참조하십시오. http://technet.microsoft.com/en-us/library/cc966523.aspx 및 내 블로그 ( http://www.sqlskills.com/BLOGS/PAUL/category/Fragmentation.aspx) 의 프래그먼트 카테고리 아래 내 블로그에 있습니다.

나는 이것에 대해 과도하게 대답했지만 내 핫 버튼 중 하나입니다. 도움이 되었기를 바랍니다 :-)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.