SQL Server, Locks 개체
적용 대상: 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%';