FIX: 데이터베이스 잠금 작업에서 SQL Server 사용 하면 성능 문제가 발생 한다

이 문서는 Microsoft 기계 번역 소프트웨어를 이용하여 번역되었으며 Microsoft Community에 의한 Community Translation Framework(CTF) 기술 혹은 사람이 번역한 내용에 의하여 사후 편집될 수 있습니다. Microsoft는 Knowledge Base에 있는 모든 문서에 다양한 언어로 접근할 수 있도록 하기 위하여 기계 번역, 사람에 의한 번역 및 커뮤니티가 편집한 내용을 모두 제공합니다. 번역된 문서는 어휘, 구문 및/혹은 문법에 오류가 있을 수 있습니다. Microsoft는 번역 오류로 인한 부정확성, 오류 및/또는 손해와 이를 고객이 사용하는 데에 대하여 책임을 지지 않습니다.

이 문서의 영문 버전 보기:2926217
알림
기본적으로 2014 SQL Server 용 서비스 팩 1 및 서비스 팩 3 SQL Server 2012에 대 한이 수정 프로그램을 포함 하 고 수정 프로그램을 활성화 하려면 추적 플래그를 추가할 필요가 없습니다. 확인 섹션에서 누적 업데이트 중 하나를 설치한 후 수정 프로그램을 설정, 1236 추적 플래그 시작 매개 변수를 추가 하 여 Microsoft SQL Server 시작 해야 합니다.
현상
많은 프로세서를 포함 하는 컴퓨터에서 2014 Microsoft SQL Server, SQL Server 2012, SQL Server 2008 또는 SQL Server 2008 r 2의 인스턴스를 실행 하는 것을 가정 합니다. 때 잠금 수 (자원 종류 = 데이터베이스)는 다음과 같은 성능 문제가 발생 하면 특정 임계값을 초과 하는 특정 데이터베이스에 대 한.
  • 높은 값 LOCK_HASH spinlock 수 발생합니다.

    참고: 이 Spinlock이 모니터링 하는 방법에 대 한 내용은 "추가 정보" 절을 참조 하십시오.
  • 쿼리 또는 데이터베이스 잠금 필요한 작업을 완료 하는 데 시간이 오래 걸릴. 예를 들어, 다음과 같은 성능 지연이 발생할 수 있습니다.
    • SQL Server 로그인
    • 연결 된 서버 쿼리
    • sp_reset_connection
    • 트랜잭션
참고: 잠금 목록을 찾으려면 (자원 종류 = 데이터베이스) 특정된 데이터베이스에 "추가 정보" 절을 참조 하십시오. 임계값이 환경에 따라 다릅니다.
해결 방법

누적 업데이트 정보

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

SQL Server 2008 R2 s p 2 용 누적 업데이트 13

SQL Server 2008 s p 3 용 누적 업데이트 17

SQL Server 2014에 대 한 누적 업데이트 1

SQL Server 2012 s p 1 용 누적 업데이트 9

SQL Server용 누적 업데이트에 대해

SQL Server용 각각의 새로운 누적 업데이트는 모이전 누적 업데이트에 포함된 모든 핫픽스 및 보안 수정 프로그램을 포함합니다. SQL Server에 대한 최신 누적 업데이트를 확인해 보십시오.

핫픽스 정보

지원되는 핫픽스를 Microsoft에서 구할 수 있습니다. 그러나 이 핫픽스는 오직 이 문서에서 설명하는 문제를 해결하는 작업에만 사용됩니다. 이 문제가 발생하는 시스템에만 이 핫픽스를 적용해야 합니다.

핫픽스를 다운로드할 수 있는 경우, 이 기술 자료 문서의 상단에 "핫픽스 다운로드 가능" 절이 있습니다. 이 섹션이 표시 되지 않으면 Microsoft 고객 서비스 및 지원 핫픽스를 구하는 요청을 제출 합니다.

참고 다른 문제가 발생 하거나 문제 해결이 필요한 경우 별도 서비스 요청을 만들 할 수 있습니다. 추가 지원 질문과이 특정 핫픽스로 해결할 수 없는 문제에는 일반 지원 비용이 적용 됩니다. Microsoft 고객 서비스 및 지원 전화 번호의 전체 목록이 필요하거나 별도로 서비스를 요청하려면, 다음 Microsoft 웹 사이트를 방문하십시오. 참고 핫픽스를 사용할 수 있는 언어 "핫픽스 다운로드 사용 가능한" 폼을 표시 합니다. 사용자 언어가 표시되지 않는 것은 핫픽스를 해당 언어로 사용할 수 없기 때문입니다.

현재 상태
Microsoft는 이 문제가 '적용 대상' 섹션에 나열된 Microsoft 제품의 문제임을 확인했습니다.
추가 정보
응용 프로그램이 SQL Server 연결 하면 먼저 데이터베이스 컨텍스트를 설정 합니다. 기본적으로 연결 SH 모드로 데이터베이스 잠금을 얻으려고 시도 합니다. 연결이 중지 되거나 연결 되는 동안 데이터베이스 컨텍스트를 변경할 때 SH 데이터베이스 잠금이 해제 됩니다. 동일한 데이터베이스 컨텍스트에서 사용 하는 활성 연결 수를 설정한 경우 해당 특정 데이터베이스에 대해 데이터베이스 리소스 종류의 많은 잠금을 할 수 있습니다.

16 개 이상의 Cpu가 있는 컴퓨터에서 테이블 객체만 잠금이 분할된 구성표를 사용 합니다. 그러나 데이터베이스 잠금 분할 되지 않습니다. 따라서 데이터베이스 수가 클수록 잠금, SQL Server 데이터베이스에 대 한 잠금을 얻으려고 하는 데 걸리는 시간이. 대부분의 응용 프로그램에는이 디자인으로 인해 문제가 발생 하지 않습니다. 하지만 추가 작업 시간과 잠금이 필요한 특정 임계값을 초과 하는 수로. 마이크로초 각 추가 잠금에 대 한 비용은, 하지만 spinlock을 사용 하 여 잠금이 해시 버킷 구성 설정은 전체 시간 빠르게 증가할 수 있습니다. 추가 CPU 사이클을 발생 하 고 잠금을 추가 직원을 기다립니다.

이 핫픽스에 데이터베이스 잠금 분할 시작할 때 추적 플래그 T1236를 사용 합니다. 분할 데이터베이스 잠금을 유지 잠금 목록 깊이 각 로컬 파티션에 관리할 수 합니다. 이렇게 크게 데이터베이스 잠금을 얻는 데 사용 되는 액세스 경로 최적화 합니다.

LOCK_HASH spinlock을 모니터링 하려면 다음 쿼리를 사용할 수 있습니다.
SET NOCOUNT ONCREATE TABLE #spinlock_stats([CaptureTime] datetime,[name] nvarchar(512),[collisions] bigint,[spins] bigint,[spins_per_collision] real,[sleep_time] bigint,[backoffs] int)DECLARE @counter int = 1WHILE @counter < 100      BEGIN            INSERT INTO #spinlock_stats SELECT GETDATE() as "CaptureTime" , * FROM sys.dm_os_spinlock_stats WHERE [name] = 'LOCK_HASH'            WAITFOR DELAY '00:00:05'            SET @counter +=1      ENDSELECT * FROM #spinlock_stats ORDER BY [CaptureTime]DROP TABLE #spinlock_stats
진단 하 고 SQL Server 대 한 spinlock 경합을 해결 하는 방법에 대 한 자세한 내용은 다음 문서 이동.

참고: 이 문서는 SQL Server 2008 r 2에 대 한 작성, 하지만 정보는 SQL Server 2012에도 적용 됩니다.
참조
SQL Server 2012에서 추적 플래그에 대 한 자세한 내용은 다음 TechNet 웹 사이트로 이동.


사용자 당 데이터베이스에서에서 데이터베이스 잠금 수를 확인 하는 방법에 대 한 자세한 내용은이 값을 계산 하려면 다음 쿼리를 사용:
select  Resource_database_id, resource_type, request_mode, request_status,  count (*) 'LockCount' from sys.dm_tran_locks group by  Resource_database_id, resource_type, request_mode, request_status


경고: 이 문서는 자동으로 번역되었습니다.

गुण

आलेख ID: 2926217 - पिछली समीक्षा: 12/03/2015 16:06:00 - संशोधन: 7.0

Microsoft SQL Server 2012 Enterprise, Microsoft SQL Server 2012 Developer, Microsoft SQL Server 2012 Standard, Microsoft SQL Server 2012 Express, Microsoft SQL Server 2012 Web, Microsoft SQL Server 2012 Service Pack 1, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2008 Service Pack 3, Microsoft SQL Server 2008 R2 Service Pack 2

  • kbqfe kbfix kbsurveynew kbexpertiseadvanced kbautohotfix kbhotfixserver kbmt KB2926217 KbMtko
प्रतिक्रिया