통계 업데이트시기

다음을 수행하는 유지 관리 계획을 상속했습니다.

  • 오래된 데이터 정리
  • DB 무결성 검사
  • 데이터베이스 및 트랜잭션 로그 백업 수행
  • 인덱스 재구성
  • 통계 업데이트
  • 오래된 백업 및 유지 관리 계획 파일 삭제

23 분 유지 관리 계획 중 통계 업데이트에는 엄청난 13 분이 소요됩니다.이 13 분 동안 데이터베이스에 대한 액세스가 차단됩니다 (또는 적어도이 DB에서 다른 데이터베이스로의 복제). 일시 중지됨).

내 질문은 :

언제 통계를 업데이트하고 그 이유는 무엇입니까?

이것은 우리가 매일하는 것보다 덜 자주해야하는 일인 것 같습니다. 저는 불필요한 일을한다는 “그냥”사고 방식에서 벗어나려고 노력하고 있습니다. 유지 관리.

댓글

  • 행이 삽입 / 업데이트 / 삭제되는 빈도 / 방법? 저에게는 이것이 결정적인 요소입니다.
  • @JNK 전체 DB에 하루에 ~ 70,000 개의 행을 삽입합니다. 한 달에 최대 100 개의 행을 업데이트합니다.
  • 1-TABLE에서 행 수를 알고 2는 백분율로 알면 더 관련이 있습니다. 하루에 7 만 행을 1m 테이블에 넣는 것은 500m 테이블에 넣는 것과는 많이 다릅니다.
  • ola.hallengren.com과 같은 것을 사용하는 것이 좋습니다. / … 이 솔루션은 필요한 것만 재 구축 / 재구성 및 업데이트하므로 유지 관리 계획에 걸리는 시간을 단축하고 많은 로그 공간을 절약 할 수 있습니다.

답변

유지 보수 기간이없는 경우 매일 통계를 업데이트하는 것은 다소 과한 작업 일 수 있습니다. . 특히 데이터베이스에 대해 자동 업데이트 통계를 사용 설정 한 경우 . 원래 게시물에서이 유지 관리 계획으로 인해 사용자가 성능 저하를보고 있다고 말했습니다.이 유지 관리를 실행할 다른 시간이 없습니까? 계획입니까? 다른 창이 없습니까? 계획에 인덱스 재구성이 포함되어 있습니다. 인덱스를 재 구축하는시기는 언제입니까? 해당 작업이 발생하면 통계가 자동으로 업데이트됩니다. dex).

정확하게 통계를 업데이트해야하는 빈도는 색인 및 데이터가 수신하는 데이터 수 정량에 따라 크게 달라집니다. . 데이터에 대한 수정 (INSERT, UPDATE, DELETE)이 거의없는 경우, 통계 업데이트 작업에 대한 일정이 더 드물게있을 수 있습니다.

통계가 오래된 지 확인하는 한 가지 방법은 실행 계획을 살펴보고 예상 행이 반환 된 실제 행과 크게 다른지 확인하는 것입니다. 그러면 간격을 늘려야한다는 좋은 표시입니다. 귀하의 경우에는 “다른 방향으로 가고 있으며 약간의 시험이 필요할 수 있습니다. 매주 통계를 업데이트하고”부실한 통계의 징후가 보이기 시작하면 거기에서 시작하십시오.

데이터베이스에 대해 자동 업데이트 통계를 사용하는 경우 통계가 업데이트되는 임계 값은 이 참조 를 참조하세요.

댓글

  • 우리는 일주일에 한 번 색인을 다시 작성합니다.
  • @ Onion-Knight 그런 다음 색인을 다시 작성할 때 일주일에 한 번 통계를 업데이트합니다. . ' 데이터베이스에서 포괄적 인 색인 재 구축을 수행하는 경우 충분할 수 있습니다.

답변

통계 업데이트시기

자동 업데이트 통계 기능은 요구 사항에 충분하지 않습니다. 내 말은 자동 생성 및 자동 업데이트 통계가 켜져 있고 통계가 정확하지 않거나 최신이 아니기 때문에 잘못된 쿼리 계획을 얻는다면 통계 생성 및 업데이트를 제어하는 것이 좋습니다. 하지만 SQL 서버 성능 및 쿼리 실행 시간에 문제가없는 경우

그런 다음 업데이트 통계 < 유지 보수 계획

명령 > 통계 업데이트는 중요하고 유용합니다. 1. SQL Server 쿼리 최적화 프로그램이 좋은 쿼리 계획을 일관되게 생성하면서 개발 및 관리 비용을 낮게 유지합니다. 2. 쿼리 최적화 프로그램에서 통계를 사용합니다. 식의 선택 성과 중간 및 최종 쿼리 결과의 크기를 추정합니다. 삼.좋은 통계를 통해 최적화 프로그램은 다양한 쿼리 계획의 비용을 정확하게 평가 한 다음 고품질 계획을 선택할 수 있습니다.


통계를 수동으로 업데이트하려면 먼저 통계가 자동으로 업데이트되는 경우

SQL Server 쿼리 최적화 프로그램이 상당한 업데이트를 수행 한 테이블의 특정 열에 대한 통계를 요구하는 경우 통계가 마지막으로 생성되거나 업데이트 된 이후의 활동은 SQL Server가 자동 업데이트 통계를 사용하여 열 값을 샘플링하여 통계를 자동으로 업데이트합니다. 통계 자동 업데이트는 쿼리 최적화 또는 컴파일 된 계획 실행에 의해 트리거되며 쿼리에서 참조 된 열의 하위 집합 만 포함됩니다. AUTO_UPDATE_STATISTCS_ASYNC가 OFF 인 경우 쿼리 컴파일 전에 통계가 업데이트됩니다.

다음은 SQL Server에서 업데이트 통계가 트리거되는시기에 대해 설명하는 유용한 기사입니다.

  1. from simple-talk 섹션 13. 통계에 대한 자동 업데이트는 언제 트리거됩니까?
  2. support.microsoft 섹션 : Autostats 결정 자동화
  3. msdn.microsoft 섹션 : SQL Server 2008에서 통계 유지

통계가 트리거되는시기를 알고 나면 통계를 수동으로 업데이트 할시기를 결정하는 데 도움이됩니다.

통계에 대해 자세히 알아 보려면 & 성능에 미치는 영향

BrentOzar 및 Kimberly in sqlskills 매우 우수한 블로그 & 블로거 .

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다