내보내기(0) 인쇄
모두 확장
이 항목은 아직 평가되지 않았습니다.- 이 항목 평가

리소스 제한

SQL 데이터베이스는 데이터베이스를 설정된 리소스 경계 내에서 유지하도록 트랜잭션 로그, I/O 등의 공유 리소스 사용량을 모니터합니다. 이 리소스 경계 또는 임계값은 리소스 제한이라고 하며, 테넌트 또는 실제 노드 수준에서 클라이언트의 리소스 사용량이 이러한 제한을 넘어서면 SQL 데이터베이스는 리소스 사용을 관리하여 연결을 끊거나 요청을 거부하는 방법으로 응답합니다.

항목 내용

리소스 제한 요약 테이블

다음 테이블에서는 각 리소스 제한의 요약을 제공합니다. 이 제한을 넘어서면 SQL 데이터베이스에서 요청을 거부하거나 영향을 받는 리소스에 대한 연결을 종료하고 오류 코드를 반환합니다.

Important중요
경우에 따라 한 리소스의 여러 제한 조건에 대해 같은 오류 코드가 반환됩니다. 이러한 조건은 오류 메시지에 있는 상태로 식별됩니다. 예를 들어, 트랜잭션 로그 길이 리소스에 대해 제한 조건에 따라 각각 동일한 오류 코드/메시지와 서로 다른 상태 값을 가지는 다음과 같은 오류 메시지가 표시됩니다.

Msg 40552, Level 17, State 1, Line 1
The session has been terminated because of excessive transaction log space usage.
Try modifying fewer rows in a single transaction.

-----------------------------------------------------------

Msg 40552, Level 17, State 2, Line 1
The session has been terminated because of excessive transaction log space usage.
Try modifying fewer rows in a single transaction.

아래 테이블 및 이후의 설명에는 리소스 제한 및 해당 오류 코드의 각 상태에 대한 설명이 나와 있습니다. 이 항목의 뒷부분에 나오는 해당 설명으로 이동하려면 테이블에서 리소스 이름을 클릭하십시오.

 

리소스 제한 반환된 오류 코드

데이터베이스 크기

150GB 또는 데이터베이스 할당량(MAXSIZE)에 따라 그 이하

40544

트랜잭션 기간

상태 1: 24시간

상태 2: 트랜잭션이 기본 시스템 작업에 필요한 리소스를 잠그는 경우 20초

40549

트랜잭션 잠금 카운트

트랜잭션당 1백만 잠금

40550

Tempdb

상태 1: 5GB의 tempdb 공간

상태 2: tempdb에서 트랜잭션당 2GB

상태 3: tempdb에서 총 로그 공간의 20%

40551

트랜잭션 로그 길이

상태 1: 트랜잭션당 2GB

상태 2: 총 로그 공간의 20%

40552

메모리 사용량

20초 이상 16MB의 메모리 부여

40553

데이터베이스 크기

 

요청 거부/연결 끊김 메커니즘 반환된 오류 코드 제한 거부된 요청 유형 권장 사항

사용자 데이터베이스에 할당된 데이터베이스 공간이 가득 차면 이 사용자에게 데이터베이스 가득 참 오류가 발생합니다.

40544: 데이터베이스가 크기 할당량에 도달했습니다. 데이터를 분할 또는 삭제하거나, 인덱스를 삭제하거나, 설명서에서 가능한 해결 방법을 참조하십시오. 

150GB 또는 데이터베이스 할당량(MAXSIZE)에 따라 그 이하

비 Select DML(Insert, Update, 해당 Insert 또는 Update의 Merge)

DELETE/DROP 문을 사용하여 데이터베이스 크기가 제한보다 작아질 때까지 데이터베이스에서 데이터를 제거합니다.

맨 위로 이동

트랜잭션 기간

 

요청 거부/연결 끊김 메커니즘 반환된 오류 코드 제한 거부된 요청 유형 권장 사항

트랜잭션은 해당 트랜잭션이 종속적인 행, 페이지, 테이블 등의 리소스에 잠금을 요청한 다음 트랜잭션이 더 이상 잠긴 리소스에 종속성이 없을 때 이 잠금을 해제합니다. 다음 두 조건 중 하나만 해당되어도 요청이 거부될 수 있습니다.

  • 상태 1: 트랜잭션이 24시간 넘게 실행 중인 경우 종료됩니다.

  • 상태 2: 트랜잭션이 기본 시스템 작업에 필요한 리소스를 20초 넘게 잠그는 경우 종료됩니다.

40549: 장기 실행 트랜잭션이 있으므로 세션이 종료됩니다. 트랜잭션을 짧게 줄여 보십시오.

상태 1: 24시간

상태 2: 트랜잭션이 기본 시스템 작업에 필요한 리소스를 잠그는 경우 20초

24시간 넘게 실행 중인 모든 트랜잭션이나 잠금을 수행하는 모든 DDL 또는 DML 문, 시스템 작업을 차단함

SQL 데이터베이스에 대한 작업은 사용자 입력을 차단하거나 장기 실행 트랜잭션을 유발하는 다른 종속성을 가져서는 안 됩니다.

맨 위로 이동

트랜잭션 잠금 카운트

 

요청 거부/연결 끊김 메커니즘 반환된 오류 코드 제한 거부된 요청 유형 권장 사항

1백만 개가 넘는 잠금을 사용하는 세션은 종료됩니다.

40550: 잠금이 너무 많아서 세션이 종료되었습니다. 단일 트랜잭션에서 더 적은 수의 행을 읽거나 수정하십시오. 

트랜잭션당 1백만 잠금

모든 DDL 또는 DML 문

다음 DMV를 트랜잭션 모니터링에 사용할 수 있습니다.

  • sys.dm_tran_active_transactions

  • sys.dm_tran_database_transactions

  • sys.dm_tran_locks

  • sys.dm_tran_session_transactions

응용 프로그램 유형에 따라 PAGLOCK 또는 TABLOCK 같은 성긴 잠금 힌트를 사용하여 지정된 문/트랜잭션에서 수행된 잠금 수를 줄일 수 있습니다. 이렇게 하면 응용 프로그램 동시성이 저하될 수 있습니다.

맨 위로 이동

Tempdb

 

요청 거부/연결 끊김 메커니즘 반환된 오류 코드 제한 거부된 요청 유형 권장 사항

다음 세 조건 중 하나만 해당되어도 tempdb에 대한 요청이 거부될 수 있습니다.

  • 상태 1: 세션이 5GB를 초과하는 tempdb 공간을 사용하면 이 세션은 종료됩니다.

  • 상태 2: 크기가 2GB를 초과하는 로그가 포함된 tempdb의 트랜잭션은 잘립니다. tempdb의 로그 공간을 사용할 수 있는 작업 예시: insert, update, delete, merge, create index

  • 상태 3: tempdb의 커밋되지 않은 트랜잭션은 로그 파일 잘림을 차단할 수 있습니다. 이를 방지하기 위해 가장 오래된 활성 트랜잭션 로그 시퀀스 번호(LSN)에서 tempdb의 비상 로그(현재 LSN)까지의 거리는 로그 파일 크기의 20%를 초과할 수 없습니다. 이를 위반하면 tempdb의 잘못된 트랜잭션이 종료되고 다시 로그가 잘릴 수 있도록 롤백됩니다.

40551: 과도한 tempdb 사용으로 인해 세션이 종료되었습니다. 임시 테이블 공간 사용을 줄이도록 쿼리를 수정하십시오.

상태 1: 5GB의 tempdb 공간

상태 2: tempdb에서 트랜잭션당 2GB

상태 3: tempdb에서 총 로그 공간의 20%

tempdb의 모든 DDL 또는 DML 문

임시 테이블 공간 사용량을 줄이기 위해 쿼리를 수정하여 더 이상 필요 없는 임시 개체를 삭제하거나 테이블을 자르거나 사용하지 않는 테이블을 제거합니다.

행 수를 줄이거나 여러 트랜잭션에 작업을 분할하여 tempdb에서 트랜잭션의 데이터 크기를 줄입니다.

맨 위로 이동

트랜잭션 로그 길이

 

요청 거부/연결 끊김 메커니즘 반환된 오류 코드 제한 거부된 요청 유형 권장 사항

다음 두 조건 중 하나만 해당되어도 요청이 거부될 수 있습니다.

  • 상태 1: SQL 데이터베이스는 최대 2GB 크기의 로그를 생성하는 트랜잭션을 지원합니다. 이 제한을 넘는 로그가 포함된 트랜잭션은 잘립니다. 이 볼륨의 로그 공간을 사용할 수 있는 작업 예시: insert, update, delete, merge, create index

  • 상태 2: 커밋되지 않은 트랜잭션은 로그 파일 잘림을 차단할 수 있습니다. 이를 방지하기 위해 가장 오래된 활성 트랜잭션 로그 시퀀스 번호(LSN)에서 비상 로그(현재 LSN)까지의 거리는 로그 파일 크기의 20%를 초과할 수 없습니다. 이를 위반하면 잘못된 트랜잭션이 종료되고 다시 로그가 잘릴 수 있도록 롤백됩니다.

40552: 과도한 트랜잭션 로그 공간 사용으로 인해 세션이 종료되었습니다. 단일 트랜잭션에서 더 적은 수의 행을 수정하십시오.

상태 1: 트랜잭션당 2GB

상태 2: 총 로그 공간의 20%

모든 DDL 또는 DML 문

행 작업의 경우 행 수를 줄이거나 여러 트랜잭션에 작업을 분할하는 등의 방법으로 트랜잭션의 데이터 크기를 줄입니다.

단일 트랜잭션이 필요한 테이블/인덱스 작업의 경우 다음 수식을 준수하는지 확인합니다. 테이블에서 영향을 받는 행의 수 * (업데이트되는 필드의 평균 크기(바이트) + 80) < 2GB(인덱스 다시 작성의 경우 업데이트되는 필드의 평균 크기는 평균 인덱스 크기로 대체되어야 함).

맨 위로 이동

메모리 사용량

 

요청 거부/연결 끊김 메커니즘 반환된 오류 코드 제한 거부된 요청 유형 권장 사항

20초 이상 메모리 부여를 기다리는 세션이 있을 경우, 가장 오래된 세션이 먼저 종료되도록 16MB를 초과하는 메모리를 20초 넘게 사용 중인 세션이 리소스를 점유한 시간의 내림차순으로 종료됩니다. 세션이 종료되면 필요한 메모리가 즉시 사용 가능한 상태가 되도록 메모리를 중지합니다.

40553: 과도한 메모리 사용으로 인해 세션이 종료되었습니다. 더 적은 수의 행을 처리하도록 쿼리를 수정해 보십시오.

20초 이상 16MB가 넘는 메모리 부여

정렬 및 해시 조인을 사용하는 쿼리를 비롯하여 메모리 부여를 사용하는 쿼리

정렬 및/또는 해시 조인이 필요한 쿼리에 대해 튜닝하는 쿼리를 수행합니다.

맨 위로 이동

참고 항목

이 정보가 도움이 되었습니까?
(1500자 남음)
의견을 주셔서 감사합니다.

커뮤니티 추가 항목

추가
Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2014 Microsoft. All rights reserved.