증상
다음과 같은 경우를 생각해 볼 수 있습니다.
-
NUMA를 사용 하는 Microsoft SQL Server 2012 또는 SQL Server 2014의 인스턴스를 사용 합니다.
-
SQL Server는 여러 NUMA 노드에서 여러 CPU 코어를 사용 하도록 구성 됩니다 (예: 각각 12 개 코어가 있는 NUMA 노드 4 개).
-
여러 동시 연결에서 컴파일 속도를 크게 생성 하는 컴파일-대량 작업 부하를 실행 합니다.
이 시나리오에서는 12 개 이상 사용할 수 있는 코어 수가 증가 하는 컴파일/초 쿼리 결과의 증가를 확인할 수 없습니다. 또한 CPU는 100% 사용률을 표시할 수 있습니다.참고 CPU 포화의 심각도는 NUMA 노드당 코어 수와 컴파일 속도에 따라 다릅니다.
원인
이 문제는 SQL Server가 동시 컴파일에서 NUMA 사용 하드웨어의 CPU 경합 패턴에 기여할 수 있는 데이터 구조를 사용 하기 때문에 발생 합니다.
해결 방법
이 수정을 적용 한 후에는 SQL Server가 공유 구조의 사용을 스레드 로컬 데이터로 바꿉니다. 이 문제는 다음 SQL Server 누적 업데이트에서 처음 수정 되었습니다.
SQL Server 2012 SP2에 대 한 누적 업데이트 1 /en-us/help/2976982
SQL Server 2014 누적 업데이트 2 /en-us/help/2967546
SQL Server 2012 SP1 용 누적 업데이트 10 /en-us/help/2954099
각각의 새로운 새 누적 업데이트에는 이전 누적 업데이트에 포함 된 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다. SQL Server에 대 한 최신 누적 업데이트를 확인 하세요.
해결 방법
이 문제를 해결 하려면 SQL Server 시스템에서 컴파일 속도를 줄이십시오.
상태
Microsoft는 "적용 대상" 절에 나열한 제품에서 이 문제를 확인했습니다.