적용 대상: SQL Server
Microsoft SQL Server의 SQLServer:Locks 개체는 개별 리소스 종류에 대한 SQL Server 잠금에 대한 정보를 제공합니다. 트랜잭션 중에 읽거나 수정한 행과 같은 SQL Server 리소스에 잠금이 유지되어 서로 다른 트랜잭션에서 리소스를 동시에 사용할 수 없습니다. 예를 들어 트랜잭션에 의해 테이블 내의 행에 배타적(X) 잠금이 유지되는 경우 잠금이 해제될 때까지 다른 트랜잭션은 해당 행을 수정할 수 없습니다. 잠금을 최소화하면 동시성이 향상되어 성능이 향상될 수 있습니다. Locks 개체의 여러 인스턴스를 동시에 모니터링할 수 있으며 각 인스턴스는 리소스 종류에 대한 잠금을 나타냅니다.
이 표에서는 SQL Server 잠금 카운터에 대해 설명합니다.
| SQL Server 잠금 카운터 | 설명 |
|---|---|
| 평균 대기 시간(밀리초) | 대기를 초래한 각 잠금 요청에 대한 평균 대기 시간(밀리초)입니다. |
| 평균 대기 시간 기준 | 내부 전용. |
| Lock Requests/sec | 잠금 관리자에서 요청한 새 잠금 및 잠금 변환 수입니다. |
| 잠금 시간 제한(시간 제한 > 0)/초 | 시간 초과된 초당 잠금 요청 수이지만 NOWAIT 잠금에 대한 요청은 제외됩니다. |
| Lock Timeouts/sec | 시간 초과된 초당 잠금 요청 수입니다. 여기에는 NOWAIT 잠금에 대한 요청이 포함됩니다. |
| 잠금 대기 시간(밀리초) | 마지막 1초 동안의 잠금에 대한 총 대기 시간(밀리초)입니다. |
| Lock Waits/sec | 호출자가 기다려야 하는 초당 잠금 요청 수입니다. |
| Deadlocks/sec의 수 | 교착 상태가 발생한 초당 잠금 요청 수입니다. |
SQL Server는 이러한 리소스를 잠글 수 있습니다.
| 항목 | 설명 |
|---|---|
| _합계 | 모든 잠금에 대한 정보입니다. |
| AllocUnit | 할당 단위에 대한 잠금입니다. |
| 애플리케이션 | 애플리케이션에서 지정한 리소스에 대한 잠금입니다. |
| 데이터베이스 | 데이터베이스의 모든 개체를 포함하여 데이터베이스에 대한 잠금입니다. |
| 범위 | 8페이지의 연속된 그룹에 대한 잠금입니다. |
| 파일 | 데이터베이스 파일에 대한 잠금입니다. |
| 힙/B-트리 | 힙 또는 B-트리입니다. 데이터 페이지 힙 또는 인덱스의 B-트리 구조에 대한 잠금입니다. |
| Key | 인덱스 행에 대한 잠금입니다. |
| 메타데이터 | 메타데이터라고도 하는 카탈로그 정보의 조각에 대한 잠금입니다. |
| Object | 모든 데이터 및 인덱스를 포함하는 테이블, 저장 프로시저, 뷰 등에 대한 잠금입니다. 개체는 항목이 있는 모든 항목이 될 수 있습니다 sys.all_objects. |
| OIB | 특히 온라인 인덱스 빌드 LOB 추적 테이블의 경우 온라인 인덱스 빌드 잠금에 대한 리소스를 잠급 수 있습니다. |
| 페이지 | 데이터베이스의 8KB(킬로바이트) 페이지에 대한 잠금입니다. |
| 제거 | 행 ID입니다. 힙의 단일 행에 대한 잠금입니다. |
| RowGroup | columnstore 인덱스 행 그룹에 대한 리소스를 잠급 수 있습니다. |
| Xact | 트랜잭션에 대한 잠금 리소스입니다. |
참고 항목
설명서는 인덱스를 지칭할 때 B-트리라는 용어를 사용합니다. rowstore 인덱스에서 데이터베이스 엔진은 B+ 트리를 구현합니다. 이는 columnstore 인덱스나 메모리 최적화 테이블 인덱스에는 적용되지 않습니다. 자세한 내용은 SQL Server 및 Azure SQL 인덱스 아키텍처 및 디자인 가이드를 참조하세요.
예시
sys.dm_os_performance_counters 동적 관리 뷰에서 이 T-SQL 쿼리를 사용하여 이 개체의 쿼리 성능 카운터를 탐색하기 시작합니다.
SELECT * FROM sys.dm_os_performance_counters
WHERE object_name LIKE '%Locks%';