KB3167159 - 해결: SQL Server가 쿼리 계획에서 해시 집계를 사용하는 경우 쿼리가 느리게 실행됨

적용 대상
SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

증상

다음 조건에 해당하면 쿼리가 느리게 실행될 수 있습니다.

  • 쿼리는 group by와 같은 집계를 사용합니다.
  • SQL Server는 쿼리 계획에서 해시 집계를 사용합니다.
  • 고유 값의 예상 개수가 집계의 실제 고유 값 수보다 훨씬 적습니다.

이 문제가 발생하면 프로파일러 또는 확장 이벤트 추적을 수행하면 해시 경고 이벤트가 표시됩니다.

원인

이 문제는 SQL Server에서 필요한 메모리 부여 양을 과소평가하기 때문에 발생합니다. 이로 인해 중간 결과가 tempdb로 분산됩니다.

해결 방법

이 문제는 다음 SQL Server 누적 업데이트에서 처음 해결되었습니다.

참고: 이 수정 사항을 활성화하려면 추적 플래그 9410을 사용하도록 설정해야 합니다.

권장 사항: SQL Server용 최신 누적 업데이트 설치

SQL Server에 대한 각각의 새로운 누적 업데이트에는 이전 누적 업데이트에 포함된 모든 핫픽스와 모든 보안 수정 사항이 포함되어 있습니다. SQL Server용 최신 누적 업데이트를 다운로드하여 설치하는 것이 좋습니다.

      

참조 자료

Microsoft에서 소프트웨어 업데이트를 설명하는 데 사용하는 용어에 대해 알아보세요.