Freigeben über


sys.dm_hs_database_log_rate (Transact-SQL)

Gilt für:Azure SQL-Datenbank-

Die sys.dm_hs_database_log_rate dynamische Verwaltungsfunktion (Dynamic Management Function, DMF) gibt Informationen zur Protokollgenerierungsrate in Azure SQL-Datenbank Hyperscale zurück.

Jede Zeile im Resultset stellt eine Komponente dar, die die Protokollgenerierungsrate in einer Hyperscale-Datenbank steuert (reduziert). Es gibt mehrere Komponenten in der Hyperscale-Tierarchitektur , die die Protokollgenerierungsrate reduzieren könnte, um die Datenbankleistung stabil und ausgeglichen zu halten.

Bestimmte Arten von Komponenten, z. B. sekundäre Computereplikate oder Seitenserver, können die Protokollgenerierungsrate für das primäre Computereplikat vorübergehend reduzieren, um die allgemeine Integrität und Stabilität der Datenbank sicherzustellen.

Wenn die Protokollgenerierungsrate durch keine Komponente reduziert wird, wird eine Zeile für die primäre Computereplikatkomponente zurückgegeben, die die maximale zulässige Protokollgenerierungsrate für die Datenbank anzeigt.

Diese dynamische Verwaltungsfunktion gibt Nur Zeilen zurück, wenn die Sitzung mit dem primären Replikat verbunden ist.

Syntax

sys.dm_hs_database_log_rate ( 
{ database_id | NULL }                                     
)                             

Arguments

database_id (Datenbank-ID)

database_id ist eine ganze Zahl , die die Datenbank-ID ohne Standardwert darstellt. Gültige Eingaben sind entweder eine Datenbank-ID oder NULL.

Wenn ein database_id Wert angegeben wird, sys.dm_hs_database_log_rate wird eine Zeile für diese bestimmte Datenbank zurückgegeben.

Wenn sie nicht angegeben oder angegeben NULL wird, gibt sie für eine einzelne Datenbank eine Zeile für die aktuelle Datenbank zurück. Gibt für eine Datenbank in einem elastischen Pool Zeilen für alle Datenbanken im Pool zurück, in denen der Aufrufer über ausreichende Berechtigungen verfügt.

Die integrierte Funktion DB_ID kann angegeben werden.

Zurückgegebene Tabelle

Spaltenname Datentyp Description
database_id Int NICHT NULL Bezeichner der Datenbank. Die Werte sind innerhalb einer einzelnen Datenbank oder eines elastischen Pools eindeutig, aber nicht innerhalb eines logischen Servers.
replica_id eindeutiger Bezeichner NICHT NULL Bezeichner eines Computereplikats, das der replica_id Spalte in entspricht.sys.dm_database_replica_states NULL wenn component_id entspricht einem Hyperscale-Seitenserver.

Dieser Wert wird vom DATABASEPROPERTYEX(DB_NAME(), 'ReplicaID') Funktionsaufruf zurückgegeben, wenn eine Verbindung mit dem Replikat hergestellt wird.
file_id Int NULL ID der Datenbankdatei innerhalb der Datenbank, die dem Seitenserver entspricht, der die Protokollgenerierungsrate begrenzt. Wird nur aufgefüllt, wenn es sich bei der Rolle um den Seitenserver handelt, andernfalls wird der Wert zurückgegeben NULL. Dieser Wert entspricht der file_id Spalte in sys.database_files.
current_max_log_rate bigint NICHT NULL Das aktuelle maximale Protokollratenlimit für die Protokollgenerierungsrate für das primäre Computereplikat in Bytes/Sek. Wenn keine Komponente die Generierungsrate von Protokollen reduziert, meldet sie den Grenzwert für die Protokollgenerierung für eine Hyperscale-Datenbank.
component_id eindeutiger Bezeichner NICHT NULL Ein eindeutiger Bezeichner einer Hyperscale-Komponente, z. B. eines Seitenservers oder eines Computereplikats.
role smallint NICHT NULL Alle vorhandenen Komponentenrollen, die die Protokollgenerierung reduzieren können.

Unknown = 0
Storage = 1
Primary = 2
Replica = 4
LocalDestage = 5
Destage = 6
GeoReplica = 10
StorageCheckpoint = 12
MigrationTarget = 14
Wenn die Protokollgenerierungsrate begrenzt ist, können die folgenden Wartetypen, die jeder Rolle entsprechen, im primären Computereplikat beobachtet werden:
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
Weitere Informationen finden Sie unter Protokollrateneinschränkungen
role_desc nvarchar(60) NICHT NULL Unknown = Die Komponentenrolle ist nicht bekannt.
Storage = Seitenserver(n)
Primary = Primäres Computereplikat
Replica = Sekundäres Computereplikat, z. B. ein HA-Replikat (High Availability) oder ein benanntes Replikat.
LocalDestage = Protokolldienst
Destage = Langfristiger Protokollspeicher
GeoReplica = Geo-sekundäres Replikat
StorageCheckpoint = Ein Prüfpunkt auf einem Seitenserver
MigrationTarget = Die Zieldatenbank während der umgekehrten Migration von Hyperscale zu einer Nicht-Hyperscale-Datenbank.
catchup_rate bigint NICHT NULL Nachholrate in Bytes/Sek. Gibt Null zurück, wenn die Protokollrate nicht reduziert wird.
catchup_bytes bigint NICHT NULL Die Menge des Transaktionsprotokolls in Bytes, die eine Komponente anwenden muss, um das primäre Computereplikat aufzuholen. Gibt zurück 0 , wenn die Komponente abgefangen wird.
last_reported_time datetime Das letzte Mal, wenn der Hyperscale-Protokolldienst Werte gemeldet hat.

Bemerkungen

Die sys.dm_hs_database_log_rate dynamische Verwaltungsfunktion gilt nur für die Hyperscale-Ebene der Azure SQL-Datenbank.

In der Hyperscale-Dienstebene der Azure SQL-Datenbank stellt der Protokolldienst sicher, dass die verteilten Komponenten nicht weit hinter dem Anwenden des Transaktionsprotokolls zurückstehen. Dies ist erforderlich, um die Allgemeine Systemintegrität und -stabilität aufrechtzuerhalten. Wenn Komponenten hinter sich liegen und ihre Nachholrate kleiner als die aktuelle Protokollgenerierungsrate ist, reduziert der Protokolldienst die Protokollgenerierungsrate für die primäre. Der sys.dm_hs_database_log_rate() DMF kann verwendet werden, um zu verstehen, welche Komponente die Reduzierung der Protokollrate verursacht und in welchem Umfang und wie lange die Reduzierung der Protokollrate dauern kann.

Weitere Informationen zur Reduzierung der Protokollrate finden Sie unter Leistungsdiagnose in Hyperscale.

Erlaubnisse

Für diese dynamische Verwaltungsfunktion ist die BERECHTIGUNG "VIEW DATABASE PERFORMANCE STATE" erforderlich.

Examples

A. Zurückgeben der Komponente, die zu einer Reduzierung der Protokollrate in einer bestimmten Datenbank führt

Im folgenden Beispiel wird eine Zeile für die Komponente zurückgegeben, die zu einer Reduzierung der Protokollrate führt. Wenn die Protokollgenerierungsrate nicht durch eine Komponente reduziert wird, wird eine Zeile für die primäre Berechnung zurückgegeben und zeigt die maximale zulässige Protokollgenerierungsrate für die Datenbank an.

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. Zurückgeben der Komponenten, die zu einer Reduzierung der Protokollrate führen

Wenn eine Verbindung mit einer Datenbank in einem elastischen Pool hergestellt wird, gibt das folgende Beispiel eine Zeile für die Komponente zurück, die zu einer Reduzierung der Protokollrate führt, für jede Datenbank im Pool, in der Sie über ausreichende Berechtigungen verfügen. Wenn eine Verbindung mit einer einzelnen Datenbank hergestellt wird, wird die Zeile für die Datenbank zurückgegeben.

SELECT current_max_log_rate_bps, role_desc, catchup_rate_bps, catchup_distance_bytes 
FROM sys.dm_hs_database_log_rate(NULL);