KB3138775 - 해결 방법: In-Memory OLTP 데이터베이스에서 존재하지 않는 쿼리 힌트가 포함된 쿼리를 실행할 때 SQL Server 2014가 충돌함

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

증상

SQL Server 2014에서 메모리 최적화 테이블을 만든다고 가정합니다. 그런 다음 테이블에 대해 쿼리를 제출하면 쿼리가 SQL Server에서 인식할 수 없는 힌트를 지정합니다. 예를 들어 다음 쿼리를 제출합니다.

SELECT * FROM dbo.ShoppingCart (non_existing_hint) WHERE ShoppingCartId = 1;

이 경우 SQL Server가 충돌할 수 있으며 다음과 같은 오류 메시지가 나타납니다.

참고

메시지 3624, 수준 20, 상태 1, 줄 27
시스템 어설션 검사에 실패했습니다. 자세한 내용은 SQL Server 오류 로그를 확인합니다. 일반적으로 어설션 실패는 소프트웨어 버그 또는 데이터 손상으로 인해 발생합니다. 데이터베이스 손상 여부를 검사하려면 DBCC CHECKDB를 실행하는 것이 좋습니다. 설치하는 동안 Microsoft에 덤프를 보내기로 동의한 경우 미니 덤프가 Microsoft로 전송됩니다. 업데이트는 Microsoft에서 최신 서비스 팩으로 제공되거나 기술 지원의 핫픽스를 통해 제공될 수도 있습니다.

업데이트를 설치한 후 이 시나리오에서는 SQL Server가 충돌하지 않으며 다음과 같은 오류 메시지가 표시됩니다.

참고

메시지 10794, 수준 16, 상태 86, 줄 26
테이블 옵션 'xxxxx'는 메모리 최적화 테이블에서 지원되지 않습니다.

      

해결 방법

누적 업데이트 정보

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

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

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

      

상태

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