적용 대상:Azure SQL Database
DMF(동적 관리 함수)는 sys.dm_hs_database_log_rate
Azure SQL Database 하이퍼스케일의 로그 생성 속도에 대한 정보를 반환합니다.
결과 집합의 각 행은 하이퍼스케일 데이터베이스에서 로그 생성 속도를 제어(감소)하는 구성 요소를 나타냅니다. 하이퍼스케일 계층 아키텍처에는 데이터베이스 성능을 안정적이고 균형 있게 유지하기 위해 로그 생성 속도를 줄일 수 있는 여러 구성 요소가 있습니다.
보조 컴퓨팅 복제본 또는 페이지 서버와 같은 특정 유형의 구성 요소는 주 컴퓨팅 복제본의 로그 생성 속도를 일시적으로 줄여 전체 데이터베이스 상태 및 안정성을 보장할 수 있습니다.
모든 구성 요소에서 로그 생성 속도를 줄이지 않으면 주 컴퓨팅 복제본 구성 요소에 대한 행이 반환되어 데이터베이스에 허용되는 최대 로그 생성 속도를 표시합니다.
이 동적 관리 함수는 세션이 주 복제본에 연결된 경우에만 행을 반환합니다.
Syntax
sys.dm_hs_database_log_rate (
{ database_id | NULL }
)
Arguments
데이터베이스_아이디
database_id 기본값이 없는 데이터베이스 ID를 나타내는 정 수입니다. 유효한 입력은 데이터베이스 ID 또는 NULL
.
a가 database_id
제공되면 sys.dm_hs_database_log_rate
해당 특정 데이터베이스에 대한 행을 반환합니다.
제공되지 않거나 제공된 경우 NULL
단일 데이터베이스에 대해 현재 데이터베이스의 행을 반환합니다. 탄력적 풀의 데이터베이스에 대해 호출자에게 충분한 권한이 있는 풀의 모든 데이터베이스에 대한 행 을 반환합니다.
기본 제공 함수 DB_ID 지정할 수 있습니다.
반환된 테이블
열 이름 | 데이터 형식 | Description |
---|---|---|
database_id |
int NOT NULL | 데이터베이스의 식별자입니다. 값은 단일 데이터베이스 또는 탄력적 풀 내에서 고유하지만 논리 서버 내에는 없습니다. |
replica_id |
uniqueidentifier NOT NULL | 의 열sys.dm_database_replica_states 에 해당하는 컴퓨팅 복제본의 replica_id 식별자입니다.
NULL 하이퍼 component_id 스케일 페이지 서버에해당하는 경우이 값은 복제본에 DATABASEPROPERTYEX(DB_NAME(), 'ReplicaID') 연결되면 함수 호출에서 반환됩니다. |
file_id |
int 영 | 로그 생성 속도를 제한하는 페이지 서버에 해당하는 데이터베이스 내 데이터베이스 파일의 ID입니다. 역할이 페이지 서버인 경우에만 채워지며, 그렇지 않으면 반환됩니다 NULL . 이 값은 .의 열에 file_id sys.database_files 해당합니다. |
current_max_log_rate |
bigint NOT NULL | 주 컴퓨팅 복제본의 로그 생성 속도에 대한 현재 최대 로그 속도 제한(바이트/초)입니다. 로그 생성 속도를 줄이는 구성 요소가 없는 경우 하이퍼스케일 데이터베이스에 대한 로그 생성 속도 제한을 보고합니다. |
component_id |
uniqueidentifier NOT NULL | 페이지 서버 또는 컴퓨팅 복제본과 같은 하이퍼스케일 구성 요소의 고유 식별자입니다. |
role |
smallint NOT NULL | 로그 생성을 줄일 수 있는 모든 기존 구성 요소 역할입니다.Unknown = 0Storage = 1Primary = 2Replica = 4LocalDestage = 5Destage = 6 GeoReplica = 10StorageCheckpoint = 12MigrationTarget = 14로그 생성 속도가 제한되면 주 컴퓨팅 복제본에서 각 역할에 해당하는 다음 대기 유형을 관찰할 수 있습니다. 1 - RBIO_RG_STORAGE 4 - RBIO_RG_REPLICA 5 - RBIO_RG_LOCALDESTAGE 6 - RBIO_RG_DESTAGE 10 - RBIO_RG_GEOREPLICA 12 - RBIO_RG_STORAGE_CHECKPOINT 14 - RBIO_RG_MIGRATION_TARGET 자세한 내용은 로그 속도 제한 대기를 참조하세요. |
role_desc |
nvarchar(60) NOT NULL |
Unknown = 구성 요소 역할을 알 수 없음Storage = 페이지 서버Primary = 주 컴퓨팅 복제본Replica = HA(고가용성) 복제본 또는 명명된 복제본과 같은 보조 컴퓨팅 복제본입니다.LocalDestage = 로그 서비스Destage = 장기 로그 스토리지GeoReplica = 지역 보조 복제본StorageCheckpoint = 페이지 서버의 검사점MigrationTarget = 하이퍼스케일에서 하이퍼스케일이 아닌 데이터베이스로 역방향 마이그레이션하는 동안 대상 데이터베이스입니다. |
catchup_rate |
bigint NOT NULL | Catchup Rate(바이트/초)입니다. 로그 속도가 줄어들지 않으면 0을 반환합니다. |
catchup_bytes |
bigint NOT NULL | 주 컴퓨팅 복제본을 따라잡기 위해 구성 요소가 적용해야 하는 트랜잭션 로그 양(바이트)입니다. 구성 요소가 catch되면 반환 0 합니다. |
last_reported_time |
datetime | 하이퍼스케일 로그 서비스에서 마지막으로 값을 보고한 시간입니다. |
비고
동적 관리 함수는 sys.dm_hs_database_log_rate
Azure SQL Database 하이퍼스케일 계층에만 적용됩니다.
Azure SQL Database의 하이퍼스케일 서비스 계층에서 로그 서비스는 분산 구성 요소가 트랜잭션 로그 적용에 훨씬 뒤처지지 않도록 합니다. 이는 전반적인 시스템 상태 및 안정성을 유지하는 데 필요합니다. 구성 요소가 뒤처지고 해당 캐치업 속도가 현재 로그 생성 속도보다 낮으면 로그 서비스는 기본 로그 생성 속도를 줄입니다. DMF를 sys.dm_hs_database_log_rate()
사용하여 로그 속도 감소의 원인이 되는 구성 요소와 로그 속도 감소가 지속될 수 있는 기간을 파악할 수 있습니다.
로그 속도 감소에 대한 자세한 컨텍스트는 하이퍼스케일의 성능 진단을 참조하세요.
Permissions
이 동적 관리 함수에는 VIEW DATABASE PERFORMANCE STATE 권한이 필요합니다.
예시
A. 특정 데이터베이스에서 로그 속도 감소를 일으키는 구성 요소를 반환합니다.
다음 예제에서는 로그 속도 감소를 일으키는 구성 요소에 대한 행을 반환합니다. 모든 구성 요소에서 로그 생성 속도를 줄이지 않으면 데이터베이스에 허용되는 최대 로그 생성 속도를 보여 주는 기본 컴퓨팅에 대한 행이 반환됩니다.
SELECT current_max_log_rate_bps, role_desc, catchup_rate_bps, catchup_distance_bytes
FROM sys.dm_hs_database_log_rate(DB_ID(N'Contosodb'));
B. 로그 속도 감소를 일으키는 구성 요소를 반환합니다.
탄력적 풀의 데이터베이스에 연결된 경우 다음 예제에서는 충분한 권한이 있는 풀의 모든 데이터베이스에 대해 로그 속도 감소를 일으키는 구성 요소에 대한 행을 반환합니다. 단일 데이터베이스에 연결되면 데이터베이스의 행을 반환합니다.
SELECT current_max_log_rate_bps, role_desc, catchup_rate_bps, catchup_distance_bytes
FROM sys.dm_hs_database_log_rate(NULL);