KB4316948 - 수정: 쿼리를 컴파일하고 히스토그램 수정이 2016년 및 2017년 SQL Server 기본 카디널리티 예측으로 사용하도록 설정된 경우 액세스 위반

적용 대상
SQL Server 2017 Developer SQL Server 2017 Enterprise SQL Server 2017 Enterprise Core 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)

증상

다음 시나리오를 고려하세요.

  • 히스토그램 수정을 사용하는 동안 기본 카디널리티 추정을 사용하여 쿼리를 실행하려고 합니다.
  • 쿼리에는 조건자 중 하나에서 사용되는 열의 식이 포함됩니다.

이 시나리오에서는 액세스 위반이 발생합니다. 또한 다음과 같은 오류 메시지가 나타납니다.

참고

Msg 596, Level 21, State 1, Line LineNumber
세션이 킬 상태에 있으므로 실행을 계속할 수 없습니다.
Msg 0, Level 20, State 0, Line LineNumber
현재 명령에서 심각한 오류가 발생했습니다.  결과가 있는 경우 삭제해야 합니다.

         참고 히스토그램 수정은 USE HINT('ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS') 쿼리 옵션 또는 추적 플래그 4139를 사용하여 사용하도록 설정할 수 있습니다.

해결 방법

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

2017년 SQL Server 누적 업데이트 8

SQL Server 2016 서비스 팩 2의 누적 업데이트 5

SQL Server 빌드 정보

SQL Server 대한 각 새 빌드에는 이전 빌드에 있던 모든 핫픽스 및 보안 수정 사항이 포함되어 있습니다. SQL Server 버전에 대한 최신 빌드를 설치하는 것이 좋습니다.

SQL Server 2017의 최신 빌드

SQL Server 2016의 최신 누적 업데이트

상태

Microsoft에서 이는 "적용 대상" 섹션에 나열된 Microsoft 제품에서의 문제임을 확인했습니다.

참조 자료

DBCC TRACEON - 추적 플래그(Transact-SQL)

Microsoft에서 소프트웨어 업데이트를 설명하는 데 사용하는 표준 용어 에 대해 알아봅니다.