증상
SQL Server 2014 SP1(서비스 팩 1) (빌드 번호 12.0.4449.0, KB 3144524)에 대해 원본 출시 및 현재 사용 하지 않는 누적 업데이트 6을 설치 하 고 병렬 선택(...) 이 포함 된 작업 부하 패턴을 실행 하 고 있다고 가정 합니다. NOLOCK을 사용 하 여 기본 SQL Server 잠금 기반 격리 수준 또는 상위 수준에 있습니다. 이러한 상황에서는 블로킹 또는 교착 상태를 발생 시키는 쿼리가 발생할 수 있습니다. 이 블로킹 문제에 노출 되는 패턴은 다음과 같습니다.
-
병렬화 된 선택 (...)을 실행 합니다. SourceTable 문에서 테이블에, 특히 기본 SQL Server 잠금 기반 격리 수준 이상에서 NOLOCK 힌트를 사용 합니다. 이 시나리오에서는 SourceTable에 액세스 하려고 하는 다른 쿼리가 차단 됩니다.
-
한 트랜잭션에서 개체 (예: 진행 중인 테이블 업데이트)에 대 한 단독 잠금을 유지 하는 동안에는 다른 트랜잭션이 병렬화 된 SELECT (...)를 실행 합니다. SourceTable에서 NOLOCK 힌트를 사용 합니다. 이 시나리오에서는 SourceTable에 액세스 하려고 하는 선택 쿼리가 차단 됩니다.
설치한 SQL Server의 현재 버전을 찾으려면 Sql server 및 해당 구성 요소의 버전, 버전, 업데이트 수준을 확인 하는 방법을참조 하세요.
해결 방법
이 문제는 다음과 같은 SQL Server 누적 업데이트에서 처음 수정 되었습니다.
각각의 새로운 새 누적 업데이트에는 이전 누적 업데이트에 포함 된 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다. SQL Server에 대 한 최신 누적 업데이트를 확인 하세요.
상태
Microsoft는 "적용 대상" 절에 나열한 제품에서 이 문제를 확인했습니다.
참조
Microsoft에서 소프트웨어 업데이트를 설명 하는 데 사용 하는 용어 에 대해 알아봅니다.