sys.dm_os_performance_counters(Transact-SQL)

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System(PDW)

서버에서 기본 성능 카운터당 행을 반환합니다. 각 성능 카운터에 대한 자세한 내용은 SQL Server 개체 사용을 참조 하세요.

참고 항목

Azure Synapse Analytics 또는 PDW(Analytics Platform System)에서 이를 호출하려면 이름을 sys.dm_pdw_nodes_os_performance_counters사용합니다. 이 구문은 Azure Synapse Analytics의 서버리스 SQL 풀에서 지원되지 않습니다.

열 이름 데이터 형식 설명
object_name nchar(128) 이 카운터가 속한 범주입니다.
counter_name nchar(128) 카운터의 이름입니다. 카운터에 대한 자세한 내용을 보려면 SQL Server 개체 사용의 카운터 목록에서 선택할 항목의 이름입니다.
instance_name nchar(128) 카운터의 특정 인스턴스 이름입니다. 데이터베이스 이름을 포함하는 경우가 많습니다.
cntr_value bigint 카운터의 현재 값입니다.

참고: 초당 카운터의 경우 이 값은 누적됩니다. 속도 값은 불연속 시간 간격으로 값을 샘플링하여 계산해야 합니다. 두 개의 연속 샘플 값 간의 차이는 사용된 시간 간격의 속도와 같습니다.
cntr_type int Windows 성능 아키텍처에서 정의한 카운터 유형입니다. 성능 카운터 유형에 대한 자세한 내용은 문서 또는 Windows Server 설명서의 WMI 성능 카운터 형식을 참조하세요.
pdw_node_id int 적용 대상: Azure Synapse Analytics, Analytics Platform System(PDW)

이 배포가 있는 노드의 식별자입니다.

설명

SQL Server 설치 인스턴스가 Windows 운영 체제의 성능 카운터를 표시하지 못하는 경우 다음 Transact-SQL 쿼리를 사용하여 성능 카운터가 비활성화되었는지 확인합니다.

SELECT COUNT(*) FROM sys.dm_os_performance_counters;  

반환 값이 0행이면 성능 카운터가 비활성화되었음을 의미합니다. 그런 다음 설치 로그를 확인하고 오류 3409 Reinstall sqlctr.ini for this instance, and ensure that the instance login account has correct registry permissions. 를 검색해야 합니다. 이는 성능 카운터가 사용하도록 설정되지 않았다는 것을 표시합니다. 3409 오류 바로 앞의 오류는 성능 카운터 사용 실패의 근본 원인을 나타내야 합니다. 설정 로그 파일에 대한 자세한 내용은 SQL Server 설치 로그 파일 보기 및 읽기를 참조 하세요.

열 값이 cntr_type 65792인 성능 카운터는 평균이 아니라 마지막으로 관찰된 값의 스냅샷 표시합니다.

열 값이 cntr_type 272696320 또는 272696576 성능 카운터는 샘플 간격의 각 초 동안 완료된 평균 작업 수를 표시합니다. 이 유형의 카운터는 시스템 클록의 틱 단위로 시간을 측정합니다. 예를 들어 카운터에 Buffer Manager:Checkpoint pages/sec 대해서만 Buffer Manager:Lazy writes/sec 마지막 초의 스냅샷 같은 판독값을 얻으려면 1초 떨어져 있는 두 컬렉션 지점 간의 델타를 비교해야 합니다.

열 값이 cntr_type 537003264 성능 카운터는 집합에 대한 하위 집합의 비율을 백분율로 표시합니다. 예를 들어 카운터는 Buffer Manager:Buffer cache hit ratio 총 캐시 적중 횟수와 총 캐시 조회 수를 비교합니다. 따라서 마지막 초의 스냅샷 같은 읽기를 얻으려면 현재 값과 기본 값(분모) 사이의 델타를 1초 간격으로 두 컬렉션 지점 간에 비교해야 합니다. 해당 기본 값은 열 값이 cntr_type 1073939712 성능 카운터 Buffer Manager:Buffer cache hit ratio base 입니다.

열 값이 cntr_type 1073874176 성능 카운터는 처리된 항목의 비율과 작업 수에 대한 비율로 평균 처리되는 항목 수를 표시합니다. 예를 들어 카운터는 Locks:Average Wait Time (ms) 초당 잠금 대기를 초당 잠금 요청과 비교하여 대기를 발생시킨 각 잠금 요청에 대한 평균 대기 시간(밀리초)을 표시합니다. 따라서 마지막 초의 스냅샷 같은 읽기를 얻으려면 현재 값과 기본 값(분모) 사이의 델타를 1초 간격으로 두 컬렉션 지점 간에 비교해야 합니다. 해당 기본 값은 열 값이 cntr_type 1073939712 성능 카운터 Locks:Average Wait Time Base 입니다.

데이터베이스 엔진을 sys.dm_os_performance_counters 다시 시작한 후에는 DMV의 데이터가 유지되지 않습니다. sqlserver_start_time sys.dm_os_sys_info 열을 사용하여 마지막 데이터베이스 엔진 시작 시간을 찾습니다.

Permission

SQL Server 및 SQL Managed Instance에서는 VIEW SERVER STATE 권한이 필요합니다.

SQL Database Basic, S0S1 서비스 목표 및 탄력적 풀의 데이터베이스에는 서버 관리자 계정, Microsoft Entra 관리자 계정 또는 서버 역할##MS_ServerStateReader##멤버 자격이 필요합니다. 다른 모든 SQL Database 서비스 목표에 대해서는 데이터베이스에 대한 VIEW DATABASE STATE 권한 또는 ##MS_ServerStateReader## 서버 역할의 멤버 자격이 필요합니다.

SQL Server 2022 이상에 대한 권한

서버에 대한 VIEW SERVER PERFORMANCE STATE 권한이 필요합니다.

예제

다음 예제에서는 스냅샷 카운터 값을 표시하는 모든 성능 카운터를 반환합니다.

SELECT object_name, counter_name, instance_name, cntr_value, cntr_type  
FROM sys.dm_os_performance_counters
WHERE cntr_type = 65792 OR cntr_type = 272696320 OR cntr_type = 537003264;  

참고 항목

SQL Server 운영 체제 관련 동적 관리 뷰(Transact-SQL)
sys.sysperfinfo(Transact-SQL)
sys.dm_os_sys_info(Transact-SQL)