통계를 수동으로 업데이트해야하는 이유가 있습니까?


19

SQL Server에서 통계가되면 자동으로 업데이트됩니다 Auto Update Statistics에서 True(기본값). 통계를 수동으로 업데이트해야하는 이유는 무엇입니까?

답변:


21

물론 데이터가 자동 통계 속도보다 자주 변경되는 경우 (또는 상태 또는 날짜 / 시간 스탬프 업데이트와 같이 행의 <20 %를 자주 업데이트하는 경우). 또는 테이블이 너무 커서 자동 통계 업데이트를 트리거하기에 충분하지 않은 경우. 또는 인덱스를 필터링 한 경우 ( 자동 통계 임계 값은 여전히 ​​필터링 된 인덱스에서 행 서브 세트의 변경 비율이 아니라 전체 테이블의 변경 비율을 기반으로하기 때문에 )


필터링 된 인덱스의 경우 +1 이것이 주된 이유 또는 매우 큰 데이터 세트라고 생각합니다. 한 달에 30m 행을 삽입하는 테이블이 있지만 작은 백분율이므로 수동으로 시작하지 않으면 통계가 정상적으로 업데이트되지 않습니다.
JNK

+1 또한 카운터를 재설정하는 일정에 따라 유지 관리 기간을 벗어날 가능성이 적습니다.
gbn

7

몇 가지 (피상적 인) 이유 :

자동 업데이트 통계는 새 통계가 준비 될 때까지 업데이트를 트리거 한 쿼리를 차단합니다.

... 자동 업데이트 통계를 비동기 적으로 활성화하지 않는 한. 그런 다음 업데이트를 트리거 한 쿼리는 새 통계를 기다리지 않지만 이전의 잘못된 통계로 실행될 수 있습니다.

또한 비교적 큰 테이블 (44M 행, 8.5GB)이있는 데이터베이스가 통계 업데이트를 시작할 때 이상한 차단 문제가 발생했습니다. 그래도 진행 상황을 실제로 추적하기 전에 해당 응용 프로그램을 해제했습니다.


1
+1 블로킹 및 비동기 옵션에있어 중요한 점입니다.
Aaron Bertrand

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