증상

다음과 같은 경우를 생각해 볼 수 있습니다.

  • Microsoft SQL Server 2008에서 또는 다음 쿼리 중 하나를 사용 하 여 SQL Server 2008 R2에서 테이블에 여러 행을 삽입 합니다.

    • INSERT INTO <target_table> SELECT * FROM <target_table> WHERE <predicate>
    • SELECT * INTO <target_table> FROM <source_table> WHERE <predicate>

    참고

    • <target_table> 자리 표시자는 실제 대상 테이블 이름을 나타냅니다.

    • <술어> 자리 표시자는 실제 조건자를 나타냅니다.

    • <source_table> 자리 표시자는 실제 원본 테이블을 나타냅니다.

  • 테이블의 잠금 에스컬레이션 임계값을 초과 했습니다.

이 시나리오에서는 데이터베이스 엔진이 테이블의 잠금을 에스컬레이션 하지 않습니다.

원인

이 문제는 SQL Server가 삽입 작업으로 생성 되는 모든 새 잠금을 내부적으로 카운트 하지 않기 때문에 발생 합니다. 따라서 필요한 경우 잠금 에스컬레이션 임계값이 트리거되지 않을 수 있습니다.

해결 방법

SQL Server 2008에 대 한 서비스 팩 정보

이 문제를 해결 하려면 SQL Server 2008의 최신 서비스 팩을 구하십시오. 자세한 내용은 다음 문서 번호를 클릭 하 여 Microsoft 기술 자료 문서를 참조 하세요.

968382 SQL Server 2008의 최신 서비스 팩을 구하는 방법

SQL Server 2008 R2에 대 한 서비스 팩 정보

이 문제를 해결 하려면 SQL Server 2008 R2 용 최신 서비스 팩을 구하십시오. 자세한 내용은 다음 문서 번호를 클릭 하 여 Microsoft 기술 자료 문서를 참조 하세요.

2527041SQL Server 2008 R2의 최신 서비스 팩을 구하는 방법

상태

Microsoft는 "적용 대상" 절에 나열한 제품에서 이 문제를 확인했습니다.이 문제는 sql server 2008 용 sql server 2008 서비스 팩 2에서 처음 수정 되었습니다 .이 문제는 sql server 2008 R2 용 SQL Server 2008 R2 서비스 팩 1에서 처음 수정 되었습니다.

추가 정보

잠금 에스컬레이션에 대 한 자세한 내용은 다음 Microsoft TechNet 웹 사이트를 방문 하세요.

잠금 에스컬레이션에 대 한 일반 정보테이블의 잠금이 에스컬레이션 되는지 여부를 확인 하려면 다음 Transact-sql 문을 실행 합니다.

USE tempdbGOCREATE TABLE x (i INT NOT NULL PRIMARY KEY)GOBEGIN TRANINSERT xSELECT TOP (40000)ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS rFROM master..spt_values a, master..spt_values bORDER BYrSELECTCOUNT(*)FROM sys.dm_tran_locksWHERE request_session_id = @@SPID ROLLBACKGODROP TABLE x 

테이블의 잠금이 에스컬레이션 되는 경우 마지막 SELECT 문은 값 1 또는 2를 반환 합니다. 테이블의 잠금이 에스컬레이션 되지 않으면 마지막 SELECT 문은 40066 또는 40067값을 반환 합니다.

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.

커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘 전문가의 의견을 들을 수 있습니다.