버그 번호: 194032 (콘텐츠 유지 관리) VSTS: 1484606
증상
Microsoft SQL Server 2012 또는 SQL Server 2014 큰 테이블 공간 데이터 형식에 (사용 하 여 CREATE INDEX 또는 ALTER INDEX) 인덱스를 만들려고 하면 경합 CMEMTHREAD 대기 유형 및 감소 SQL Server 성능이 높습니다.
해결 방법
문제는 SQL Server 다음 누적 업데이트에 처음 수정 되었습니다.
SQL Server 2014에 대 한 누적 업데이트 1/en-us/help/2931693
SQL Server 2012 s p 1 용 누적 업데이트 7/en-us/help/2894115
SQL Server용 각각의 새로운 누적 업데이트는 모이전 누적 업데이트에 포함된 모든 핫픽스 및 보안 수정 프로그램을 포함합니다. SQL Server에 대한 최신 누적 업데이트를 확인해 보십시오.
핫픽스 패키지 정보 업데이트지원되는 핫픽스를 Microsoft에서 구할 수 있습니다. 그러나 이 핫픽스는 오직 이 문서에서 설명하는 문제를 해결하는 작업에만 사용됩니다. 이 문제가 발생하는 시스템에만 이 핫픽스를 적용해야 합니다.
핫픽스를 다운로드할 수 있는 경우, 이 기술 자료 문서의 상단에 "핫픽스 다운로드 가능" 절이 있습니다. 이 섹션이 표시 되지 않으면 Microsoft 고객 서비스 및 지원 핫픽스를 구하는 요청을 제출 합니다. 참고: 추가 문제가 발생하거나 문제 해결이 필요한 경우, 별도로 서비스를 요청해야 할 수도 있습니다. 추가 지원 질문과 이 특정 핫픽스가 필요하지 않은 문제에는 일반 지원 비용이 적용됩니다. 전체 목록은 Microsoft 고객 서비스 및 지원 전화 번호 또는 별도 서비스 요청을 만들려면, 다음 Microsoft 웹 사이트를 방문 하십시오.http://support.microsoft.com/contactus/?ws=support참고: 핫픽스를 사용할 수 있는 언어 "핫픽스 다운로드 사용 가능한" 폼을 표시 합니다. 사용자 언어가 표시되지 않는 것은 핫픽스를 해당 언어로 사용할 수 없기 때문입니다.
자세한 내용
CMEMTHREAD 대기 유형이 대기 내부, 스레드로부터 안전한 메모리 개체를 나타냅니다. 쿼리 병렬 처리 수준이 높은 공간 활동 성능 저하로 인해 대기가 발생할 수 있습니다.
이 수정 프로그램 사용 하 여 NUMA 노드가 파티션는 CMEMTHREAD 연결 하는 "메모리 공간 개체"를 분할 합니다. 작업자 작업 동시성 단일 노드에서 활성 스케줄러의 수를 줄입니다. 높은 수준의 노드당 스케줄러를 사용 하 여 시스템에 대 한 추적 플래그-T8048 스케줄러에서 파티션 분할을 허용 하는 모든 메모리 개체를 추가 하 여 사용할 수 있습니다. 모든 NUMA 노드 분할 된 메모리 개체에는 적은 양의 메모리 오버 헤드가 소개 대로 신중 하 게 추적 플래그를 사용 합니다. 참고: SqlServerSpatial110.dll는 SQL Server 프로세스 주소 공간에 로드 되 면 메모리 공간 개체가 만들어질 수 있습니다. 대부분의 경우 SQL Server 프로세스를 다시 시작을 해야이 추적 플래그 효과 적용 해야 합니다. 스레드로부터 안전한 메모리 개체 대기, 공간 개체 뿐만 아니라 CMEMTHREAD 대기 유형이 증가 됩니다. 다음 XEvent 세션 정 및 공용 기호를 사용 하 여 대기 CMEMTHREAD 를 생성 하는 특정 코드 줄을 식별 하기 위해 사용할 수 있습니다.CREATE EVENT SESSION wait_stacksON SERVER ADD EVENT sqlos.wait_info ( action(package0.callstack) where opcode = 1 -- wait completed and wait_type = 191 -- CMEMTHREAD ) add target package0.asynchronous_bucketizer (SET source_type = 1, source = 'package0.callstack'), add target package0.ring_buffer (SET max_memory = 4096) With (MAX_DISPATCH_LATENCY = 1 SECONDS) Go alter event session wait_stacks on server state = start go Run the repro select event_session_address, target_name, execution_count, cast (target_data as XML) from sys.dm_xe_session_targets xst inner join sys.dm_xe_sessions xs on (xst.event_session_address = xs.address) where xs.name = 'wait_stacks' go상태
Microsoft는 이 문제가 '적용 대상' 섹션에 나열된 Microsoft 제품의 문제임을 확인했습니다.
Author: rdorr; jannaw
Writer: v-shysun 기술 검토: rdorr; brellwei; ajayj; jannaw; sqlprev Editor: