다음을 통해 공유


sys.dm_db_resource_stats(Azure SQL 데이터베이스)

적용 대상: Azure SQL Database

Azure SQL Database의 데이터베이스에 대한 CPU, I/O 및 메모리 사용량을 반환합니다. 활동이 없더라도 15초마다 한 행이 존재합니다. 기록 데이터는 약 1시간 동안 유지됩니다.

참고 항목

sys.dm_db_resource_stats 는 Azure SQL Managed Instance에서 지원되지 않습니다. 대신 sys.server_resource_stats 카탈로그 뷰를 사용합니다.

데이터 형식 설명
end_time datetime UTC 시간은 현재 보고 간격의 끝을 나타냅니다.
avg_cpu_percent 10진수(5,2) 서비스 계층의 제한에 대한 백분율의 평균 컴퓨팅 사용률입니다.
avg_data_io_percent 10진수(5,2) 서비스 계층의 제한에 대한 백분율의 평균 데이터 I/O 사용률입니다. 하이퍼스케일 데이터베이스의 경우 리소스 사용률 통계의 데이터 IO를 참조 하세요.
avg_log_write_percent 10진수(5,2) 평균 트랜잭션 로그는 서비스 계층 제한의 백분율로 MB/s 단위로 기록됩니다.
avg_memory_usage_percent 10진수(5,2) 서비스 계층의 제한에 대한 백분율의 평균 메모리 사용률입니다.

여기에는 버퍼 풀 페이지에 사용되는 메모리와 메모리 내 OLTP 개체의 스토리지가 포함됩니다.
xtp_storage_percent 10진수(5,2) 보고 간격이 끝날 때 풀 제한의 백분율로 메모리 내 OLTP에 대한 스토리지 사용률입니다. 여기에는 메모리 최적화 테이블, 인덱스 및 테이블 변수와 같은 메모리 내 OLTP 개체의 스토리지에 사용되는 메모리가 포함됩니다. 또한 메모리 최적화 테이블에서 ALTER TABLE 작업을 처리하는 데 사용되는 메모리도 포함됩니다.

메모리 내 OLTP가 데이터베이스에 사용되지 않으면 0을 반환합니다.
max_worker_percent 10진수(5,2) 데이터베이스의 서비스 계층 제한에 대한 백분율로 최대 동시 작업자(요청)입니다.
max_session_percent 10진수(5,2) 데이터베이스의 서비스 계층 제한에 대한 백분율의 최대 동시 세션입니다.
dtu_limit int 이 간격 동안 이 데이터베이스에 대한 현재 최대 데이터베이스 DTU 설정입니다. vCore 기반 모델을 사용하는 데이터베이스의 경우 이 열은 다음과 같습니다 NULL.
cpu_limit 10진수(5,2) 이 간격 동안 이 데이터베이스의 vCore 수입니다. DTU 기반 모델을 사용하는 데이터베이스의 경우 이 열은 다음과 같습니다 NULL.
avg_instance_cpu_percent 10진수(5,2) 풀을 호스트하는 데이터베이스 엔진 인스턴스의 평균 CPU 사용률(인스턴스 제한의 백분율)입니다. 1분 단위로 보고되며 사용자 및 내부 워크로드의 CPU 사용률을 포함합니다.
avg_instance_memory_percent 10진수(5,2) 데이터베이스를 호스팅하는 SQL Server 인스턴스의 평균 메모리 사용량입니다. 사용자 및 내부 워크로드의 메모리 사용률을 포함합니다.
avg_login_rate_percent 10진수(5,2) 정보를 제공하기 위해서만 확인됩니다. 지원 안 됨 향후 호환성은 보장되지 않습니다.
replica_role int 현재 복제본 역할을 나타냅니다.

0 - 기본
1 - HA(고가용성) 보조
2 - 지역에서 복제 전달자
3 - 명명된 복제본

읽을 수 있는 보조 데이터베이스에 의도로 ReadOnly 연결된 경우 1을 보고합니다. 의도를 지정 ReadOnly 하지 않고 지역 보조 데이터베이스에 연결하는 경우 지역 복제 전달자에 대한 연결을 반영하도록 2를 보고합니다. 의도를 지정하지 않고 명명된 복제본에 ReadOnly 연결하는 경우 3을 보고합니다.

이러한 제한 및 서비스 계층에 대한 자세한 컨텍스트는 서비스 계층, Azure SQL Database의 쿼리 성능 수동 조정, SQL Database 리소스 제한 및 리소스 거버넌스 항목을 참조하세요.

사용 권한

이 보기에는 VIEW DATABASE STATE 사용 권한이 필요합니다.

설명

반환된 sys.dm_db_resource_stats 데이터는 실행 중인 서비스 계층/성능 수준에 대해 허용되는 최대 제한의 백분율로 표시됩니다.

데이터베이스가 지난 60분 이내에 다른 서버로 장애 조치(failover)된 경우 뷰는 장애 조치(failover) 이후의 시간 동안만 데이터를 반환합니다.

보존 기간이 더 긴 이 데이터의 덜 세분화된 보기의 경우 Azure SQL Database의 카탈로그 뷰를 sys.resource_stats 사용합니다. 이 보기는 5분마다 데이터를 캡처하고 14일 동안 기록 데이터를 유지 관리합니다. 자세한 내용은 sys.resource_stats 참조하세요.

데이터베이스가 탄력적 풀의 멤버인 경우 백분율 값으로 표시되는 리소스 통계는 탄력적 풀 구성에 설정된 데이터베이스에 대한 최대 제한의 백분율로 표시됩니다.

예제

다음 예제에서는 Azure SQL Database 또는 Azure SQL Managed Instance에서 현재 연결된 데이터베이스에 대해 가장 최근 시간순으로 정렬된 리소스 사용률 데이터를 반환합니다.

SELECT * FROM sys.dm_db_resource_stats ORDER BY end_time DESC;

다음 예에서는 지난 시간 동안 사용자 데이터베이스에 대한 성능 수준에서 허용되는 최대 DTU 한도의 백분율 기준에서 평균 DTU 사용을 식별합니다. 이 비율이 일관되게 100%에 근접한다면 성능 수준 증대를 고려하는 것이 좋습니다.

SELECT end_time,
  (SELECT Max(v)
   FROM (VALUES (avg_cpu_percent), (avg_data_io_percent), (avg_log_write_percent)) AS
   value(v)) AS [avg_DTU_percent]
FROM sys.dm_db_resource_stats;

다음 예제에서는 CPU 백분율, 데이터 및 로그 I/O 및 지난 1시간 동안의 메모리 사용량에 대한 평균 및 최대값을 반환합니다.

SELECT
    AVG(avg_cpu_percent) AS 'Average CPU Utilization In Percent',
    MAX(avg_cpu_percent) AS 'Maximum CPU Utilization In Percent',
    AVG(avg_data_io_percent) AS 'Average Data IO In Percent',
    MAX(avg_data_io_percent) AS 'Maximum Data IO In Percent',
    AVG(avg_log_write_percent) AS 'Average Log Write I/O Throughput Utilization In Percent',
    MAX(avg_log_write_percent) AS 'Maximum Log Write I/O Throughput Utilization In Percent',
    AVG(avg_memory_usage_percent) AS 'Average Memory Usage In Percent',
    MAX(avg_memory_usage_percent) AS 'Maximum Memory Usage In Percent'
FROM sys.dm_db_resource_stats;