FIX: CPU 사용량이 경합을 통해 QUERY_EXEC_STATS spinlock 지켜지면 느리게 2008 R2 SQL Server 나 SQL Server 2012 발생

기술 자료 번역 기술 자료 번역
기술 자료: 2662301 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

Microsoft Microsoft SQL Server 2008 R2 서비스 팩 1 (SP1)을 배포 하거나 Microsoft SQL Server 2012 다운로드 한 파일에서 수정 합니다. 수정 누적 되는 형태 이므로 각 새 릴리스의 모든 핫픽스와 들어 및 릴리스 이전 SQL Server 2008 R2 서비스 팩 1 (SP1) 또는 Microsoft SQL Server 2012에 포함 된 모든 보안 업데이트를 업데이트 합니다.

현상

다음 시나리오를 고려 하십시오.
  • 컴퓨터에서 Microsoft SQL Server 2012의 Microsoft SQL Server 2008 R2 인스턴스를 설치합니다.
  • 다음과 유사한 문은 동시에 인스턴스가 실행 됩니다.
    CREATE PROC p AS RETURN (
    query
    ); EXEC p;
    또는 다음 코드를 포함 하는 쿼리를 실행 합니다.

    IF EXISTS(
    subquery
    );
  • CPU 사용률이 지속적으로 높은 이며 작업 스레드가 실행 가능 상태가 됩니다.
  • 경쟁에는 QUERY_EXEC_STATS spinlock이 높습니다.
    예를 들어, 스핀 카운트, 가능한 충돌, 및 백오프 값은 QUERY_EXEC_STATS spinlock 빠르게 증가 합니다.
    참고 모니터링 하는 방법에 대 한 자세한 정보는 QUERY_EXEC_STATS spinlock을 "추가 정보" 절을 참조 하십시오.

이 시나리오에서 성능 저하가 발생할 수 있습니다.

원인

이 문제 때문에 SQL Server 2008 R2 발생 또는 SQL Server 2012을 만들고 일부 메모리 구조를 캐시 하는 대신 전역 통계 정보를 소멸 시킵니다. 이 성능 병목 현상이 발생합니다.

해결 방법

누적 업데이트 정보

SQL Server 2012

이 문제에 대 한 수정 프로그램은 SQL Server 2012에 대 한 누적 업데이트 1 먼저 릴리스 되었습니다. 이 누적 업데이트 패키지에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서 번호를 클릭 합니다.
2679368 SQL Server 2012에 대 한 누적 업데이트 패키지 1
참고 빌드 누적 되는 형태 이므로 각 새 수정 프로그램 릴리스의 모든 핫픽스와 들어 및 이전 SQL Server 2012에 포함 된 모든 보안 수정 프로그램 릴리스의 수정. 이 핫픽스가 포함 된 최신 수정 릴리스를 적용 고려 하는 것이 좋습니다. 자세한 내용은 Microsoft 기술 자료의 다음 문서 번호를 클릭 하십시오.
2692828 SQL Server 2012 2012 SQL Server 릴리스된 후에 릴리스된 빌드
SQL Server 2012의 설치에 2012 SQL Server 핫픽스를 적용 해야 합니다.

SQL Server 2008 R2 s p 1 용 누적 업데이트 패키지 5

이 문제에 대 한 수정 프로그램은 먼저 누적 업데이트 5 릴리스 되었습니다. SQL Server 2008 R2 sp1이 누적 업데이트 패키지를 구하는 방법에 대 한 자세한 내용은 Microsoft 기술 자료의 다음 문서 번호를 클릭 합니다.
2659694 SQL Server 2008 R2 s p 1 용 누적 업데이트 패키지 5
참고 빌드 누적 되는 형태 이므로 각 새 수정 프로그램 릴리스의 모든 핫픽스와 들어 및 이전 SQL Server 2008 R2 sp1에 포함 된 모든 보안 수정 프로그램 릴리스의 수정. 이 핫픽스가 포함 된 최신 수정 릴리스를 적용을 고려 하는 것이 좋습니다. 자세한 내용은 Microsoft 기술 자료의 다음 문서 번호를 클릭 하십시오.
2567616 SQL Server 2008 R2 SQL Server 2008 R2 s p 1이 릴리스된 후에 릴리스된 빌드

추가 정보

QUERY_EXEC_STATS spinlock을 모니터링 하려면 지연과 횟수에 다음 코드를 사용자 환경에 적절 하 게 조정 하 고 실행:

SET NOCOUNT ON
CREATE TABLE #spins([Spinlock Name] varchar(50),Collisions numeric,Spins numeric,[Spins/Collision] float,[Sleep Time (ms)] numeric,Backoffs numeric, InsertTime datetime DEFAULT GETDATE())
DECLARE @counter int = 1
WHILE @counter < 10
      BEGIN
            INSERT INTO #spins ([Spinlock Name], Collisions, Spins, [Spins/Collision], [Sleep Time (ms)], Backoffs) EXECUTE ('DBCC SQLPERF (''SPINLOCKSTATS'') WITH NO_INFOMSGS')
            WAITFOR DELAY '00:00:05'
            SET @counter +=1
      END
SELECT * FROM #spins WHERE [Spinlock Name] = 'QUERY_EXEC_STATS' ORDER BY InsertTime
DROP TABLE #spins

현재 상태

Microsoft는 "적용 대상" 절에 나열 된 제품에서 문제가 있음을 확인 했습니다.

속성

기술 자료: 2662301 - 마지막 검토: 2012년 4월 12일 목요일 - 수정: 1.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Enterprise
  • Microsoft SQL Server 2012 Standard
키워드:?
kbqfe kbfix kbexpertiseadvanced kbsurveynew kbmt KB2662301 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.
이 문서의 영문 버전 보기:2662301

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com