통계 업데이트시기


42

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

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

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

내 질문은 :

언제 통계를 업데이트해야합니까? 왜 그렇습니까?

이것은 우리가 매일보다 덜 자주해야 할 일처럼 보입니다. 불필요한 유지 보수를 수행한다는 "정확한 이유"에서 벗어나도록 노력하고 있습니다.


2
행을 얼마나 자주 / 어떻게 삽입 / 업데이트 / 삭제합니까? 나에게 이것은 결정 요소입니다.
JNK 2016 년

@JNK 우리는 전체 DB에 매일 ~ 70,000 개의 행을 삽입합니다. 한 달에 ~ 100 행을 업데이트하십시오.
Onion-Knight

1-TABLE로 몇 개의 행을, 2는 백분율로 알고 있으면 더 적합합니다. 1m 테이블에 하루에 70k 행이 500m 테이블에 훨씬 다릅니다
JNK

ola.hallengren.com/… 과 같은 것을 사용하는 것이 좋습니다. 이 솔루션은 유지 보수 계획에 걸리는 시간을 단축하고 로그 공간을 많이 절약 할 수있는 방식으로 필요한 것을 재구성 / 개조 및 업데이트합니다.
Peter

답변:


28

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

통계를 얼마나 자주 업데이트해야 하는가는 인덱스와 데이터가 얼마나 많은 데이터를 수정하고 있는지에 달려 있습니다 . 약간의 수정 (있는 경우 INSERT, UPDATE, DELETE데이터에가), 당신은 업데이트 통계 작업에 대한 더 자주 일정을 가질 수있다.

통계가 오래되었는지 여부를 확인하는 한 가지 방법은 실행 계획을보고 행이 실제 행과 크게 다른 것으로 추정되는 경우 간격을 늘려야한다는 것을 나타냅니다. 귀하의 경우에는 다른 방향으로 가고 있으며 약간의 재판이 필요할 수 있습니다. 매주 통계를 업데이트하고, 오래된 통계의 주요 징후를보기 시작하면 거기서 시작하십시오.

데이터베이스에 자동 업데이트 통계를 사용 하는 경우 통계 업데이트시기의 임계 값 은 이 참조참조 하십시오 .


일주일에 한 번 인덱스를 다시 작성합니다.
Onion-Knight

5
@ Onion-Knight 그런 다음 인덱스를 다시 작성할 때 일주일에 한 번 통계도 업데이트합니다. 데이터베이스에서 담요 인덱스를 다시 작성하는 경우 충분할 수 있습니다.
Thomas Stringer 2016 년

25

통계 업데이트시기

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

그런 다음 유지 관리 계획 에서 업데이트 통계 명령을 중지하는 것이 좋습니다.

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


통계를 수동으로 업데이트하려면 먼저 통계가 자동으로 업데이트되는시기를 알아야합니다.

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

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

  1. 간단한 토크에서 13. 언제 통계에 자동 업데이트가 실행됩니다?
  2. support.microsoft 섹션 : 자동 통계 결정 자동화
  3. msdn.microsoft 섹션 : SQL Server 2008의 통계 유지 관리

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

통계 및 성능에 미치는 영향 내가 추천에 대해 자세히 알고 BrentOzarsqlskills에서 킴벌리을 아주 좋은 블로그 및 블로거.

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